JP2017228029A - 並列化方法、並列化ツール、車載装置 - Google Patents
並列化方法、並列化ツール、車載装置 Download PDFInfo
- Publication number
- JP2017228029A JP2017228029A JP2016122769A JP2016122769A JP2017228029A JP 2017228029 A JP2017228029 A JP 2017228029A JP 2016122769 A JP2016122769 A JP 2016122769A JP 2016122769 A JP2016122769 A JP 2016122769A JP 2017228029 A JP2017228029 A JP 2017228029A
- Authority
- JP
- Japan
- Prior art keywords
- core
- unit
- processing units
- microcomputer
- processing
- 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.)
- Pending
Links
Images
Classifications
-
- 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
-
- 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
-
- 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
- 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
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】コンピュータ10は、シングルコアマイコン用に記述され複数のタスク31,32を含んでいるシングルプログラム30を解析して、複数のタスク31,32をそれぞれ並列化した並列プログラム21a1を生成するものである。コンピュータ10のMT群抽出部2dは、タスク31,32間で共通してアクセスされる共通リソースを解析し、共通リソースへのアクセスを示している複数のMTを抽出する。そして、コンピュータ10の配置制約決定部2eは、抽出された複数のMTを、マルチコアプロセッサにおける同じコアに配置する。
【選択図】図3
Description
シングルコアマイコン用に記述され複数のタスクを含んでいるシングルプログラムを解析して、シングルプログラムの各処理単位間における同じリソースへのアクセスを示している各データ依存関係を基に、複数のコアを有するマルチコアマイコン用に並列化可能な処理単位を並列化して、複数のタスクのそれぞれを並列化した並列プログラム(21a1)を生成する並列化方法であって、
タスク間で共通してアクセスされるリソースを解析し、このリソースへのアクセスを示している複数の処理単位を抽出する抽出手順(2d、4)と、
抽出手順で抽出された複数の処理単位を、マルチコアマイコンにおける同じコアに配置する配置手順(2e、4)と、を備えている。
シングルコアマイコン用に記述され複数のタスクを含んでいるシングルプログラムを解析して、シングルプログラムの各処理単位間における同じリソースへのアクセスを示している各データ依存関係を基に、マルチコアマイコン用に並列化可能な処理単位を並列化して、複数のタスクをそれぞれ並列化した並列プログラム(21a1)を生成する、コンピュータを含む並列化ツールであって、
タスク間で共通してアクセスされるリソースを解析し、リソースへのアクセスを示している複数の処理単位を抽出する抽出部(2d、4)と、
抽出部で抽出された複数の処理単位を、マルチコアマイコンにおける同じコアに配置する配置部(2e、4)と、を備えている。
複数のコア(21c、21d)を有するマルチコアマイコン(21)と、コアが一つであるシングルコアマイコン用に記述され複数のタスクを含んでいるシングルプログラムにおける複数の処理単位からマルチコアマイコン用に並列化された並列プログラム(21a1)と、を備えた車載装置であって、
並列プログラムは、
シングルコアマイコン用に記述され複数のタスクを含んでいるシングルプログラムを解析して、シングルプログラムの各処理単位間における同じリソースへのアクセスを示している各データ依存関係を基に、マルチコアマイコン用に並列化可能な処理単位を並列化して、複数のタスクのそれぞれが並列化されており、
タスク間で共通してアクセスされるリソースを解析し、リソースへのアクセスを示している複数の処理単位が抽出され、
抽出された複数の処理単位が、マルチコアマイコンにおける同じコアに配置されており、
マルチコアマイコンは、各コアが自身に割り当てられた処理単位を実行する。
ここで、図11、図12を用いて、本発明の変形例に関して説明する。変形例のコンピュータ10aは、コア配置とスケジューリングを、全タスクを対象として一括で行う点がコンピュータ10と異なる。なお、変形例では、第1タスク33、第2タスク34、第3タスク35の三つのタスクを含んでいるシングルプログラム30を採用している。しかしながら、変形例では、二つのタスクを含むシングルプログラム30、又は四つ以上のタスクを含むシングルプログラム30であっても採用できる。
Claims (11)
- シングルコアマイコン用に記述され複数のタスクを含んでいるシングルプログラムを解析して、前記シングルプログラムの各処理単位間における同じリソースへのアクセスを示している各データ依存関係を基に、複数のコアを有するマルチコアマイコン用に並列化可能な前記処理単位を並列化して、複数の前記タスクのそれぞれを並列化した並列プログラム(21a1)を生成する並列化方法であって、
前記タスク間で共通してアクセスされる前記リソースを解析し、前記リソースへのアクセスを示している複数の前記処理単位を抽出する抽出手順(2d、4)と、
前記抽出手順で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける同じ前記コアに配置する配置手順(2e、4)と、を備えている並列化方法。 - 配置手順は、前記抽出手順で抽出され、前記マルチコアマイコンにおける同じ前記コアに配置した複数の前記処理単位にコア内排他処理を追加する請求項1に記載の並列化方法。
- 前記配置手順は、前記抽出手順で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける同じ前記コアに配置できなった場合、前記抽出手順で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける異なる前記コアに配置するものであり、
さらに、前記配置手順によって、前記抽出手順で抽出された複数の前記処理単位が、前記マルチコアマイコンにおける異なる前記コアに配置された場合、異なる前記コアが複数の前記処理単位のそれぞれを実行して前記リソースに同時にアクセスすることを避けるために、コア間排他処理を追加する追加手順を備えている請求項1又は2に記載の並列化方法。 - 前記配置手順は、前記抽出手順で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける同じ前記コアに配置できなった場合、前記抽出手順で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける異なる前記コアに配置するものであり、
さらに、前記配置手順によって、前記抽出手順で抽出された複数の前記処理単位が、前記マルチコアマイコンにおける異なる前記コアに配置された場合、異なる前記コアが複数の前記処理単位のそれぞれを実行して前記リソースに同時にアクセスすることを避けるために、複数の前記処理単位の一つが実行される際に他の前記処理単位の実行を中断させる中段処理を追加する追加手順を備えている請求項1又は2に記載の並列化方法。 - 前記シングルプログラムの各処理単位のうち、前記マルチコアマイコンの前記コアにおける配置先が指定されている前記処理単位を示すコア配置情報を取得するものであり、
前記配置手順は、前記コア配置情報を優先して前記処理単位を指定された前記コアに配置し、且つ、前記抽出手順で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける同じ前記コアに配置する請求項1乃至4のいずれか一項に記載の並列化方法。 - シングルコアマイコン用に記述され複数のタスクを含んでいるシングルプログラムを解析して、前記シングルプログラムの各処理単位間における同じリソースへのアクセスを示している各データ依存関係を基に、マルチコアマイコン用に並列化可能な前記処理単位を並列化して、複数の前記タスクをそれぞれ並列化した並列プログラム(21a1)を生成する、コンピュータを含む並列化ツールであって、
前記タスク間で共通してアクセスされる前記リソースを解析し、前記リソースへのアクセスを示している複数の前記処理単位を抽出する抽出部(2d、4)と、
前記抽出部で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける同じコアに配置する配置部(2e、4)と、を備えている並列化ツール。 - 配置部は、前記抽出部で抽出され、前記マルチコアマイコンにおける同じ前記コアに配置した複数の前記処理単位にコア内排他処理を追加する請求項6に記載の並列化ツール。
- 前記配置部は、前記抽出部で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける同じ前記コアに配置できなった場合、前記抽出部で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける異なる前記コアに配置するものであり、
さらに、前記配置部によって、前記抽出部で抽出された複数の前記処理単位が、前記マルチコアマイコンにおける異なる前記コアに配置された場合、異なる前記コアが複数の前記処理単位のそれぞれを実行して前記リソースに同時にアクセスすることを避けるために、コア間排他処理を追加する追加部を備えている請求項6又は7に記載の並列化ツール。 - 前記配置部は、前記抽出部で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける同じ前記コアに配置できなった場合、前記抽出部で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける異なる前記コアに配置するものであり、
さらに、前記配置部によって、前記抽出部で抽出された複数の前記処理単位が、前記マルチコアマイコンにおける異なる前記コアに配置された場合、異なる前記コアが複数の前記処理単位のそれぞれを実行して前記リソースに同時にアクセスすることを避けるために、複数の前記処理単位の一つが実行される際に他の前記処理単位の実行を中断させる中段処理を追加する追加部を備えている請求項6又は7に記載の並列化ツール。 - 前記シングルプログラムの各処理単位のうち、前記マルチコアマイコンの前記コアにおける配置先が指定されている前記処理単位を示すコア配置情報を取得するものであり、
前記配置部は、前記コア配置情報を優先して前記処理単位を指定された前記コアに配置し、且つ、前記抽出部で抽出された複数の前記処理単位を、前記マルチコアマイコンにおける同じ前記コアに配置する請求項6乃至9のいずれか一項に記載の並列化ツール。 - 複数のコア(21c、21d)を有するマルチコアマイコン(21)と、前記コアが一つであるシングルコアマイコン用に記述され複数のタスクを含んでいるシングルプログラムにおける複数の処理単位から前記マルチコアマイコン用に並列化された並列プログラム(21a1)と、を備えた車載装置であって、
前記並列プログラムは、
前記シングルコアマイコン用に記述され複数のタスクを含んでいるシングルプログラムを解析して、前記シングルプログラムの各処理単位間における同じリソースへのアクセスを示している各データ依存関係を基に、前記マルチコアマイコン用に並列化可能な前記処理単位を並列化して、複数の前記タスクのそれぞれが並列化されており、
前記タスク間で共通してアクセスされる前記リソースを解析し、前記リソースへのアクセスを示している複数の前記処理単位が抽出され、
抽出された複数の前記処理単位が、前記マルチコアマイコンにおける同じ前記コアに配置されており、
前記マルチコアマイコンは、各コアが前記並列プログラムを実行する車載装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016122769A JP2017228029A (ja) | 2016-06-21 | 2016-06-21 | 並列化方法、並列化ツール、車載装置 |
US15/617,038 US10540156B2 (en) | 2016-06-21 | 2017-06-08 | Parallelization method, parallelization tool, and in-vehicle device |
DE102017210126.1A DE102017210126A1 (de) | 2016-06-21 | 2017-06-16 | Parallelisierungsverfahren, Parallelisierungswerkzeug und fahrzeuginterne Vorrichtung |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016122769A JP2017228029A (ja) | 2016-06-21 | 2016-06-21 | 並列化方法、並列化ツール、車載装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017228029A true JP2017228029A (ja) | 2017-12-28 |
Family
ID=60481314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016122769A Pending JP2017228029A (ja) | 2016-06-21 | 2016-06-21 | 並列化方法、並列化ツール、車載装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10540156B2 (ja) |
JP (1) | JP2017228029A (ja) |
DE (1) | DE102017210126A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019215804A (ja) * | 2018-06-14 | 2019-12-19 | 株式会社デンソー | マルチコアマイコン及び並列化方法 |
JP2020181407A (ja) * | 2019-04-25 | 2020-11-05 | 株式会社デンソー | 並列化方法、半導体制御装置、及び車載制御装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017107448A (ja) * | 2015-12-10 | 2017-06-15 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
US10671361B2 (en) * | 2016-10-25 | 2020-06-02 | Paypal, Inc. | Automatically determining data dependencies to facilitate code execution |
US11709648B2 (en) * | 2019-12-19 | 2023-07-25 | Tyxit Sa | Distributed audio processing system for processing audio signals from multiple sources |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5802338A (en) * | 1996-10-01 | 1998-09-01 | International Business Machines Corporation | Method of self-parallelizing and self-parallelizing multiprocessor using the method |
JPH11259437A (ja) * | 1998-03-12 | 1999-09-24 | Hitachi Ltd | 不要バリア命令の削減方式 |
JP4042604B2 (ja) * | 2003-03-31 | 2008-02-06 | 日本電気株式会社 | プログラム並列化装置,プログラム並列化方法およびプログラム並列化プログラム |
US7926046B2 (en) * | 2005-12-13 | 2011-04-12 | Soorgoli Ashok Halambi | Compiler method for extracting and accelerator template program |
JP4936517B2 (ja) * | 2006-06-06 | 2012-05-23 | 学校法人早稲田大学 | ヘテロジニアス・マルチプロセッサシステムの制御方法及びマルチグレイン並列化コンパイラ |
EP2093667A4 (en) | 2006-12-14 | 2012-03-28 | Fujitsu Ltd | COMPILATION METHOD AND COMPILER |
JP5224498B2 (ja) * | 2007-02-28 | 2013-07-03 | 学校法人早稲田大学 | メモリ管理方法、情報処理装置、プログラムの作成方法及びプログラム |
JP2009258962A (ja) | 2008-04-16 | 2009-11-05 | Hitachi Ltd | プログラム変換方法、及び装置 |
US20120239910A1 (en) * | 2008-08-15 | 2012-09-20 | Apple Inc. | Conditional extract instruction for processing vectors |
US8417919B2 (en) * | 2008-09-12 | 2013-04-09 | Wisconsin Alumni Research Foundation | Assigning different serialization identifier to operations on different data set for execution in respective processor in multi-processor system |
JP5406363B2 (ja) * | 2009-10-27 | 2014-02-05 | 株式会社日立製作所 | プール領域の一部の領域を動的にデータ格納領域として割り当てる記憶制御装置及び記憶制御方法 |
US9830157B2 (en) * | 2010-08-18 | 2017-11-28 | Wisconsin Alumni Research Foundation | System and method for selectively delaying execution of an operation based on a search for uncompleted predicate operations in processor-associated queues |
US9152523B2 (en) * | 2010-09-15 | 2015-10-06 | Qualcomm Incorporated | Batching and forking resource requests in a portable computing device |
KR101738641B1 (ko) * | 2010-12-17 | 2017-05-23 | 삼성전자주식회사 | 멀티 코어 시스템의 프로그램 컴파일 장치 및 방법 |
WO2012112302A2 (en) * | 2011-02-17 | 2012-08-23 | Siemens Aktiengesellschaft | Parallel processing in human-machine interface applications |
WO2013010159A1 (en) * | 2011-07-14 | 2013-01-17 | Siemens Corporation | Reducing the scan cycle time of control applications through multi-core execution of user programs |
JP5637182B2 (ja) | 2012-07-02 | 2014-12-10 | 株式会社デンソー | プログラム開発支援装置、及びプログラム開発支援ツール |
US20150363230A1 (en) * | 2013-01-23 | 2015-12-17 | Waseda University | Parallelism extraction method and method for making program |
US10241793B2 (en) * | 2013-03-15 | 2019-03-26 | Analog Devices Global | Paralleizing loops in the presence of possible memory aliases |
JP6018022B2 (ja) * | 2013-06-14 | 2016-11-02 | 株式会社デンソー | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 |
JP6427054B2 (ja) * | 2015-03-31 | 2018-11-21 | 株式会社デンソー | 並列化コンパイル方法、及び並列化コンパイラ |
JP6427055B2 (ja) * | 2015-03-31 | 2018-11-21 | 株式会社デンソー | 並列化コンパイル方法、及び並列化コンパイラ |
JP2017107448A (ja) * | 2015-12-10 | 2017-06-15 | 株式会社デンソー | 並列化方法、並列化ツール、車載装置 |
JP6558310B2 (ja) * | 2016-06-13 | 2019-08-14 | 株式会社デンソー | 並列化方法、並列化ツール |
-
2016
- 2016-06-21 JP JP2016122769A patent/JP2017228029A/ja active Pending
-
2017
- 2017-06-08 US US15/617,038 patent/US10540156B2/en active Active
- 2017-06-16 DE DE102017210126.1A patent/DE102017210126A1/de active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2019215804A (ja) * | 2018-06-14 | 2019-12-19 | 株式会社デンソー | マルチコアマイコン及び並列化方法 |
JP7073933B2 (ja) | 2018-06-14 | 2022-05-24 | 株式会社デンソー | マルチコアマイコン及び並列化方法 |
JP2020181407A (ja) * | 2019-04-25 | 2020-11-05 | 株式会社デンソー | 並列化方法、半導体制御装置、及び車載制御装置 |
JP7107275B2 (ja) | 2019-04-25 | 2022-07-27 | 株式会社デンソー | 並列化方法、半導体制御装置、及び車載制御装置 |
Also Published As
Publication number | Publication date |
---|---|
DE102017210126A1 (de) | 2017-12-21 |
US20170364341A1 (en) | 2017-12-21 |
US10540156B2 (en) | 2020-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6018022B2 (ja) | 並列化コンパイル方法、並列化コンパイラ、並列化コンパイル装置、及び、車載装置 | |
EP2950211B1 (en) | Parallelism extraction method and method for making program | |
US11243816B2 (en) | Program execution on heterogeneous platform | |
JP2017228029A (ja) | 並列化方法、並列化ツール、車載装置 | |
JP6427054B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
US8799881B2 (en) | Program parallelization device and program product | |
KR20080093108A (ko) | 프로그램 병렬 실행 시스템 및 방법 | |
US10296316B2 (en) | Parallelization method, parallelization tool, and in-vehicle apparatus | |
EP2361408A1 (en) | Method and system for parallelization of sequencial computer program codes | |
JP6464982B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
US20150331787A1 (en) | Software verification | |
JP6427053B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
JP6427055B2 (ja) | 並列化コンパイル方法、及び並列化コンパイラ | |
JP6488739B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
JP2008305337A (ja) | プログラム変換装置、プログラム変換方法、プログラム、記憶媒体、デバッグ装置、デバッグ方法及びプログラム開発システム | |
JP7095513B2 (ja) | マルチコアマイコン、及び車載装置 | |
JP6933001B2 (ja) | 並列化方法、並列化ツール | |
JP6488738B2 (ja) | 並列化コンパイル方法、及び、並列化コンパイラ | |
JP6428557B2 (ja) | 並列化方法、並列化ツール | |
KR20150040663A (ko) | 소프트웨어 파이프라이닝을 이용한 명령어 스케줄링 방법 및 장치 | |
JP6558310B2 (ja) | 並列化方法、並列化ツール | |
JP2005352894A (ja) | 性能解析プログラム及び性能解析プログラムの生成方法 | |
JP6933063B2 (ja) | 並列化方法、並列化ツール、車載装置 | |
JP2018124710A (ja) | 並列化方法、並列化ツール、及び車載制御装置 | |
JP7059776B2 (ja) | 並列化方法、並列化ツール、及びマルチコアマイコン |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180803 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190416 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190417 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190610 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20190806 |