JP6873256B2 - 車載マルチコア制御用データ伝達装置および電子制御装置 - Google Patents
車載マルチコア制御用データ伝達装置および電子制御装置 Download PDFInfo
- Publication number
- JP6873256B2 JP6873256B2 JP2019544584A JP2019544584A JP6873256B2 JP 6873256 B2 JP6873256 B2 JP 6873256B2 JP 2019544584 A JP2019544584 A JP 2019544584A JP 2019544584 A JP2019544584 A JP 2019544584A JP 6873256 B2 JP6873256 B2 JP 6873256B2
- Authority
- JP
- Japan
- Prior art keywords
- bank
- bank memory
- memory
- processor
- writing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims description 47
- 230000015654 memory Effects 0.000 claims description 344
- 230000006870 function Effects 0.000 claims description 74
- 238000012546 transfer Methods 0.000 claims description 5
- 238000000034 method Methods 0.000 description 53
- 239000000446 fuel Substances 0.000 description 33
- 238000002347 injection Methods 0.000 description 29
- 239000007924 injection Substances 0.000 description 29
- 238000012545 processing Methods 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 18
- 230000008859 change Effects 0.000 description 6
- 230000000052 comparative effect Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000005070 sampling Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 230000001174 ascending effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000002955 isolation Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
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/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F02—COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
- F02D—CONTROLLING COMBUSTION ENGINES
- F02D45/00—Electrical control not provided for in groups F02D41/00 - F02D43/00
-
- 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
- G06F15/167—Interprocessor communication using a common memory, e.g. mailbox
-
- 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/52—Indexing scheme relating to G06F9/52
- G06F2209/521—Atomic
Description
そして、ECU204のCPU100には、吸入空気量Qを計算するためのセンサ値がエアフローメータ103から入力されるとともに、エンジン回転数Neを計算するためのセンサ値が回転数センサ106から入力される。そして、CPU100において、これらのセンサ値から吸入空気量Qおよびエンジン回転数Neが計算され、共有RAM120に格納される。
そして、ECU204のCPU100には、吸気管圧力Pを計算するためのセンサ値が圧力センサ104から入力されるとともに、エンジン回転数Neを計算するためのセンサ値が回転数センサ106から入力される。そして、CPU100において、これらのセンサ値から吸気管圧力Pおよびエンジン回転数Neが計算され、共有RAM120に格納される。
そして、ECU204のCPU100には、スロットル開度αを計算するためのセンサ値がスロットルセンサ105から入力されるとともに、エンジン回転数Neを計算するためのセンサ値が回転数センサ106から入力される。そして、CPU100において、これらのセンサ値からスロットル開度αおよびエンジン回転数Neが計算され、共有RAM120に格納される。
図4では、CPU間排他制御を行うために、スピンロック制御方法を用いる場合を示した。図4において、CPUはロック変数を読み込む(S401)。ロック変数は、排他制御される共有資源と同様に共有メモリ上に確保される。
S401、S402およびS403の一連の動作はテスト・アンド・セット命令のようなアトミック命令B400を用いて実装される。アトミック命令とは、あるCPUが命令実行中に他のCPUが干渉できない不可分な複合命令セットのことである。
図5において、プロセッサ内排他制御区間B500には、割込み禁止(S501)と割込み許可(S505)とが設けられている。割込み禁止(S501)と割込み許可(S505)とで挟まれた区間は、割込み禁止区間である。プロセッサ間排他制御区間B510は、この割込み禁止区間に設けられている。プロセッサ間排他制御区間B510では、CPUがロックを取得すると(S502)、そのCPUが共有資源へアクセスし(S503)、その後、CPUはロックを開放(S504)する。
このネスト関係を維持することにより、あるCPUがロックを取得してからロックを開放するまでは、そのCPUは割込み制御ができなくなる。割込み制御は、そのCPU独自の都合で行われるので、複数CPU間のロック実行時間・待ち時間の量的関係に含ませるべきではないからである。
図7において、読み出し手続きS700が開始されると、読み出しコア602−1〜602−3は、Get_Bank関数f710を呼び、戻り値よりアクセス可能なバンク番号idを取得する(ステップS710)。なお、図6の例では、バンク番号idは、#1〜#5のいずれかの値に設定される。
図8において、書き込み手続きS800が開始されると、書き込みコア601は、Reserve_Bank関数f810を呼び、戻り値よりアクセス可能なバンク番号idを取得する(ステップS810)。なお、図6の例では、バンク番号idは、#1〜#5のいずれかの値に設定される。
また、この保持時間(読み出し手続きS700にかかる時間)をどれだけ延長しても、他の書き込みコアおよび読み出しコアの動作遅延を引き起こすことはない。
図10において、CPU100のQ計算901では、吸入空気量Q1〜Q10が5msごとに計算される。CPU100のNe計算902では、エンジン回転数Ne1〜Ne5が10msごとに計算される。バンク出力903では、Reserve_Bank関数f810およびPut_Bank関数f830が10msごとに呼び出され、バンクメモリB[1]〜B[3]に{Q,Ne}のデータセットが書き込まれる。
Claims (9)
- M(Mは2以上の整数)個のバンクメモリと、前記バンクメモリにアクセス可能なN(Nは2以上の整数)個のプロセッサとが設けられた車載マルチコア制御用データ伝達装置であって、
前記M個のバンクメモリが配置され、前記N個のプロセッサからアクセス可能な共有メモリと、
前記バンクメモリを特定する識別情報に基づいて、前記プロセッサから前記バンクメモリへのアクセスを制御するアクセス制御部とを備え、
前記アクセス制御部は、
書き込みが行われるバンクメモリには、書き込みに使われる1個のプロセッサのみを割り当て、
読み出しが行われるバンクメモリには、読み出しに使われるK(Kは1以上N−1以下の整数)個のプロセッサを割り当て、
書き込みが行われているバンクメモリと読み出しが行われているバンクメモリとが同一にならないように前記バンクメモリへのアクセスを排他的に制御し、
前記プロセッサによる読み出し時には、最後に書き込みが行われたバンクメモリの識別情報を返し、
前記プロセッサによる書き込み時には、最後に書き込みが行われたバンクメモリ以外で、かついずれのプロセッサによる読み出しにも使用されていないバンクメモリの識別情報を返す
車載マルチコア制御用データ伝達装置。 - M(Mは2以上の整数)個のバンクメモリと、前記バンクメモリにアクセス可能なN(Nは2以上の整数)個のプロセッサとが設けられた車載マルチコア制御用データ伝達装置であって、
前記M個のバンクメモリが配置され、前記N個のプロセッサからアクセス可能な共有メモリと、
前記バンクメモリを特定する識別情報に基づいて、前記プロセッサから前記バンクメモリへのアクセスを制御するアクセス制御部とを備え、
前記アクセス制御部は、
書き込みが行われるバンクメモリには、書き込みに使われる1個のプロセッサのみを割り当て、
読み出しが行われるバンクメモリには、読み出しに使われるK(Kは1以上N−1以下の整数)個のプロセッサを割り当て、
書き込みが行われているバンクメモリと読み出しが行われているバンクメモリとが同一にならないように前記バンクメモリへのアクセスを排他的に制御し、
前記プロセッサによる書き込みが行われるバンクメモリは、前記プロセッサに前記バンクメモリが割り当てられる前に、最後に書き込みが行われたバンクメモリの内容がコピーされる車載マルチコア制御用データ伝達装置。 - 書き込みに使われるプロセッサの個数は1、読み出しに使われるプロセッサの個数はN−1、前記バンクメモリの個数MはN+1に設定される請求項1または2に記載の車載マルチコア制御用データ伝達装置。
- 前記バンクメモリをM個のごとにまとめたN個のスクラッチパッド・メモリを備え、
書き込みに使われるN個のプロセッサと前記N個のスクラッチパッド・メモリとは1対1に対応づけられている請求項1または2に記載の車載マルチコア制御用データ伝達装置。 - 前記スクラッチパッド・メモリに対して行われる書き込み操作および読み出し操作を実現する実行コードおよびこの実行コードを含む関数は、各プロセッサに対してローカルに設けられた実行コード格納領域に保持される請求項4に記載の車載マルチコア制御用データ伝達装置。
- 前記スクラッチパッド・メモリに対して対応づけられた書き込みに使われるプロセッサに関しては書き込みコードおよび書き込み関数のみを実装し、前記スクラッチパッド・メモリに対して対応づけられた読み出しに使われるプロセッサに関しては読み出しコードおよび読み出し関数のみを実装する請求項5に記載の車載マルチコア制御用データ伝達装置。
- 前記共有メモリに配置されたカウンタ配列領域と第1レジスタと第2レジスタを備え、
前記カウンタ配列領域は、読み出しに使用されるプロセッサから前記バンクメモリへのアクセス数を前記バンクメモリごとに記憶し、
前記第1レジスタは、最後に書き込みが行われたバンクメモリを特定する識別情報を記憶し、
前記第2レジスタは、前記カウンタ配列領域および前記第1レジスタの参照結果に基づいて、最後に書き込みが行われたバンクメモリ以外で、かつどのプロセッサからもアクセスされていないバンクメモリを特定する識別情報を記憶し、
前記アクセス制御部は、前記カウンタ配列領域に記憶されたアクセス数および前記第1レジスタに記憶された識別情報および前記第2レジスタに記憶された識別情報に基づいて、前記プロセッサから前記バンクメモリへのアクセスを制御する請求項1または2に記載の車載マルチコア制御用データ伝達装置。 - M(Mは2以上の整数)個のバンクメモリと、前記バンクメモリにアクセス可能なN(Nは2以上の整数)個のプロセッサとが設けられた電子制御装置であって、
前記M個のバンクメモリが配置され、前記N個のプロセッサからアクセス可能な共有メモリと、
前記バンクメモリを特定する識別情報に基づいて、前記プロセッサから前記バンクメモリへのアクセスを制御するアクセス制御部とを備え、
前記アクセス制御部は、
書き込みが行われるバンクメモリには、書き込みに使われる1個のプロセッサのみを割り当て、
読み出しが行われるバンクメモリには、読み出しに使われるK(Kは1以上N−1以下の整数)個のプロセッサを割り当て、
書き込みが行われているバンクメモリと読み出しが行われているバンクメモリとが同一にならないように前記バンクメモリへのアクセスを排他的に制御し、
前記書き込みに使われるプロセッサは、車載制御の制御量の算出に用いられる1以上複数の入力値を計算し、その入力値を前記バンクメモリに書き込み、
前記読み出しに使われるプロセッサは、前記書き込みが行われたバンクメモリから前記入力値を読み出し、前記入力値に基づいて車載制御の制御量を算出し、
前記プロセッサによる読み出し時には、最後に書き込みが行われたバンクメモリの識別情報を返し、
前記プロセッサによる書き込み時には、最後に書き込みが行われたバンクメモリ以外で、かついずれのプロセッサによる読み出しにも使用されていないバンクメモリの識別情報を返す
電子制御装置。 - M(Mは2以上の整数)個のバンクメモリと、前記バンクメモリにアクセス可能なN(Nは2以上の整数)個のプロセッサとが設けられた電子制御装置であって、
前記M個のバンクメモリが配置され、前記N個のプロセッサからアクセス可能な共有メモリと、
前記バンクメモリを特定する識別情報に基づいて、前記プロセッサから前記バンクメモリへのアクセスを制御するアクセス制御部とを備え、
前記アクセス制御部は、
書き込みが行われるバンクメモリには、書き込みに使われる1個のプロセッサのみを割り当て、
読み出しが行われるバンクメモリには、読み出しに使われるK(Kは1以上N−1以下の整数)個のプロセッサを割り当て、
書き込みが行われているバンクメモリと読み出しが行われているバンクメモリとが同一にならないように前記バンクメモリへのアクセスを排他的に制御し、
前記書き込みに使われるプロセッサは、車載制御の制御量の算出に用いられる1以上複数の入力値を計算し、その入力値を前記バンクメモリに書き込み、
前記読み出しに使われるプロセッサは、前記書き込みが行われたバンクメモリから前記入力値を読み出し、前記入力値に基づいて車載制御の制御量を算出し、
前記プロセッサによる書き込みが行われるバンクメモリは、前記プロセッサに前記バンクメモリが割り当てられる前に、最後に書き込みが行われたバンクメモリの内容がコピーされる電子制御装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017185977 | 2017-09-27 | ||
JP2017185977 | 2017-09-27 | ||
PCT/JP2018/034137 WO2019065302A1 (ja) | 2017-09-27 | 2018-09-14 | 車載マルチコア制御用データ伝達装置および電子制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2019065302A1 JPWO2019065302A1 (ja) | 2020-04-02 |
JP6873256B2 true JP6873256B2 (ja) | 2021-05-19 |
Family
ID=65901443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019544584A Active JP6873256B2 (ja) | 2017-09-27 | 2018-09-14 | 車載マルチコア制御用データ伝達装置および電子制御装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11836547B2 (ja) |
JP (1) | JP6873256B2 (ja) |
WO (1) | WO2019065302A1 (ja) |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE4129809C2 (de) * | 1991-01-28 | 2000-08-17 | Bosch Gmbh Robert | Mehrrechnersystem |
KR950031600A (ko) * | 1994-04-27 | 1995-12-18 | 가나이 쯔도무 | 자동변속기의 제어장치 및 제어방법 |
US20020112100A1 (en) * | 1999-08-19 | 2002-08-15 | Myron Zimmerman | System and method for data exchange |
JP2006301894A (ja) | 2005-04-20 | 2006-11-02 | Nec Electronics Corp | マルチプロセッサシステム、及びマルチプロセッサシステムのメッセージ伝達方法 |
EP1956484B1 (en) | 2007-02-07 | 2011-10-19 | Robert Bosch Gmbh | Administration module, producer and consumer processor, arrangement thereof and method for inter-processor communication via a shared memory |
US8095727B2 (en) * | 2008-02-08 | 2012-01-10 | Inetco Systems Limited | Multi-reader, multi-writer lock-free ring buffer |
JP5213485B2 (ja) | 2008-03-12 | 2013-06-19 | 株式会社トヨタIt開発センター | マルチプロセッサシステムにおけるデータ同期方法及びマルチプロセッサシステム |
KR101926464B1 (ko) | 2012-10-11 | 2018-12-07 | 삼성전자 주식회사 | 멀티코어 프로세서에서 수행되는 프로그램의 컴파일 방법, 멀티코어 프로세서의 태스크 매핑 방법 및 태스크 스케줄링 방법 |
US9176872B2 (en) * | 2013-02-25 | 2015-11-03 | Barco N.V. | Wait-free algorithm for inter-core, inter-process, or inter-task communication |
US10203995B2 (en) * | 2013-11-22 | 2019-02-12 | Excalibur Ip, Llc | Method or system for access to shared resource |
-
2018
- 2018-09-14 WO PCT/JP2018/034137 patent/WO2019065302A1/ja active Application Filing
- 2018-09-14 US US16/647,807 patent/US11836547B2/en active Active
- 2018-09-14 JP JP2019544584A patent/JP6873256B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US11836547B2 (en) | 2023-12-05 |
US20200218542A1 (en) | 2020-07-09 |
WO2019065302A1 (ja) | 2019-04-04 |
JPWO2019065302A1 (ja) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3667496B1 (en) | Distributed computing system, data transmission method and device in distributed computing system | |
US8438341B2 (en) | Common memory programming | |
EP3338196B1 (en) | Certifiable deterministic system software framework for hard real-time safety-critical applications in avionics systems featuring multi-core processors | |
US9996394B2 (en) | Scheduling accelerator tasks on accelerators using graphs | |
US11386014B2 (en) | Method and system for low latency data management | |
EP3489815B1 (en) | Method and system for low latency data management | |
US20110265093A1 (en) | Computer System and Program Product | |
Cong et al. | Architecture support for domain-specific accelerator-rich cmps | |
Hascoët et al. | Asynchronous one-sided communications and synchronizations for a clustered manycore processor | |
JP6873256B2 (ja) | 車載マルチコア制御用データ伝達装置および電子制御装置 | |
Cataldo et al. | Subutai: distributed synchronization primitives in NoC interfaces for legacy parallel-applications | |
CN116048824B (zh) | 一种多核处理器信号量系统 | |
Elliott et al. | Gpusync: Architecture-aware management of gpus for predictable multi-gpu real-time systems | |
JP7346649B2 (ja) | 同期制御システムおよび同期制御方法 | |
Rheindt et al. | CaCAO: complex and compositional atomic operations for NoC-based manycore platforms | |
Tomoutzoglou et al. | Efficient Job Offloading in Heterogeneous Systems Through Hardware-Assisted Packet-Based Dispatching and User-Level Runtime Infrastructure | |
Wu et al. | A hardware platform for exploring predictable cache coherence protocols for real-time multicores | |
Nolte et al. | HW-FUTEX: Hardware-Assisted Futex Syscall | |
CN117149471B (zh) | 通信方法、装置、嵌入式系统、存储介质以及电子设备 | |
Kroh et al. | Efficient fine-grained processor-logic interactions on the cache-coherent zynq platform | |
CN219642231U (zh) | 一种任务分发装置和基于任务分发装置的多核异构处理器 | |
US20230205452A1 (en) | Circular buffer architecture using local memories with limited resources | |
Riedel et al. | LRSCwait: Enabling Scalable and Efficient Synchronization in Manycore Systems through Polling-Free and Retry-Free Operation | |
Lumetta | Design and evaluation of multiprotocol communication on a cluster of SMP's | |
Rox et al. | System Level Performance Analysis for Real-Time Multi-Core and Network Architectures |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20191113 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210119 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20210317 |
|
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: 20210330 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210420 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6873256 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |