JP2019185527A - マイコン装置およびマイコン装置の制御方法 - Google Patents
マイコン装置およびマイコン装置の制御方法 Download PDFInfo
- Publication number
- JP2019185527A JP2019185527A JP2018077517A JP2018077517A JP2019185527A JP 2019185527 A JP2019185527 A JP 2019185527A JP 2018077517 A JP2018077517 A JP 2018077517A JP 2018077517 A JP2018077517 A JP 2018077517A JP 2019185527 A JP2019185527 A JP 2019185527A
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- cpus
- cpu
- data
- memory
- 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
Landscapes
- Bus Control (AREA)
- Microcomputers (AREA)
Abstract
【課題】演算速度を向上させることができるマイコン装置およびマイコン装置の制御方法を提供すること。【解決手段】実施形態に係るマイコン装置は、複数のCPUと、メモリと、DMAとを備える。複数のCPUは、密結合メモリを有する。メモリは、所定の演算に用いられる演算データを記憶する。DMAは、CPUの転送指示に基づいてメモリから演算データを読み出し、複数のCPUそれぞれの密結合メモリに演算データの割り当て分を転送する。また、複数のCPUは、密結合メモリに転送された演算データの割り当て分を用いて演算を分担して行う。【選択図】図3
Description
本発明は、マイコン装置およびマイコン装置の制御方法に関する。
従来、エンジンや、ブレーキ等のパワートレイン系機器における制御のための演算を行うマイコン装置が知られている。かかるマイコン装置は、組み込みマイコンとも呼ばれ、特定の機器を制御するために設計されたシステムが組み込まれる。
ところで、近年、パワートレイン系機器の演算にAI(Artificial Intelligence)の活用が望まれている。しかしながら、従来のマイコン装置は、CPUの性能スペック上、AI等の大量演算を行うとなると、演算に時間を要するという課題があった。
本発明は、上記に鑑みてなされたものであって、演算速度を向上させることができるマイコン装置およびマイコン装置の制御方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係るマイコン装置は、複数のCPUと、メモリと、DMAとを備える。前記複数のCPUは、密結合メモリを有する。前記メモリは、所定の演算に用いられる演算データを記憶する。前記DMAは、前記CPUの転送指示に基づいて前記メモリから前記演算データを読み出し、前記複数のCPUそれぞれの前記密結合メモリに前記演算データの割り当て分を転送する。また、前記複数のCPUは、前記密結合メモリに転送された前記演算データの割り当て分を用いて前記所定の演算を分担して行う。
本発明によれば、演算速度を向上させることができる。
以下、添付図面を参照して、本願の開示するマイコン装置およびマイコン装置の制御方法の実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
まず、図1および図2を用いて、実施形態に係る車載装置(マイコン装置の一例)の制御方法の概要について説明する。図1および図2は、実施形態に係る車載装置1の制御方法の概要を示す図である。図1には、入力データX1〜Xn、複数の重みパラメータw1〜wm、出力データY1〜Ykにより演算されるニューラルネットワークの一例を示している。
実施形態に係る車載装置1は、例えば、車載機器を電子的に制御する各種の電子制御装置に適用することができる。電子制御装置が制御対象とする車載機器は、エンジン、変速機、ブレーキ等パワートレイン系機器、エアコン、シート、ドアロック等のボディ系機器、ナビゲーション装置等の情報系機器、およびエアバックやシートベルト等の安全系機器等である。
例えば、車載装置1は、エンジンのノッキングを高精度に判定するための手法として上記したニューラルネットワークを用いることができる。かかる場合、入力データX1〜Xnは、ノックセンサの波形を示す画像であり、出力データY1〜Ykは、ノッキングの有無の確率となる。なお、ニューラルネットワークによる推定は、ノッキング判定に限らず任意のものであってよい。
ところで、近年、上記のように、車載機器の制御についてAIの活用が望まれている。しかしながら、従来の車載装置は、CPUの性能スペック上、AI等の大量演算を行うとなると、演算に時間を要するという課題があった。
そこで、実施形態に係る車載装置1は、複数のCPU3により並列処理を行う。具体的には、図2に示すように、実施形態に係る車載装置1は、複数のCPU(Central Processing Unit)3a,3b,3cと、DMA(Direct Memory Access)4と、メモリ5とを備える。なお、複数のCPU3a,3b,3cを特に区別しない場合、「複数のCPU3」あるいは単に「CPU3」と記載する場合がある。
また、複数のCPU3それぞれには、TCM(Tightly Coupled Memory)31a,31b,31cが内蔵される。なお、TCM31a,31b,31cを特に区別しない限り、TCM31と記載する場合がある。TCM31は、密結合メモリとも呼ばれ、各CPU3に直接結合することで、CPU3が高速にアクセスできるメモリである。
また、メモリ5は、演算データ51を記憶する。演算データ51は、CPU3の演算に用いられるデータである。なお、図2に示す例では、演算データ51は、ニューラルネットワークの重みパラメータw1〜wmであることとする。
実施形態に係る車載装置1は、まず、ニューラルネットワークにおける所定の入力データX1〜Xnが入力された場合、複数のCPU3がDMA4に対して演算データの転送指示を行う。なお、転送指示の送信は、複数のCPU3のうち、任意の一のCPU3が代表して行うがかかる点については後述する。なお、図2では、CPU3aが転送指示の送信を行うこととする。
つづいて、DMA4は、CPU3aの転送指示に基づいてメモリ5から演算データ51を読み出し、複数のCPU3a,3b,3cそれぞれのTCM31a,31b,31cに演算データの割り当て分を転送する。
そして、複数のCPU3それぞれは、TCM31に転送された演算データの割り当て分を用いて演算を分担する。例えば、複数のCPU3それぞれは、ニューラルネットワークの出力データY1〜Ykそれぞれを分担して演算する。
このように、実施形態に係る車載装置1は、複数のCPU3がニューラルネットワーク等の大量演算を並列処理する。さらに、各CPU3の演算において、TCM31に演算データ51を転送させることで、演算データ51をメモリ5から読み出す必要がなくなるため、演算データ51の読み出し時間を短くすることができる。
すなわち、実施形態に係る車載装置1は、演算速度を向上させることができる。また、CPU3は、ニューラルネットワークを用いて車両の制御に関する演算を行うことで、より高精度な車両制御を実現することができる。
次に、図3を用いて、実施形態に係る車載装置1の構成について説明する。図3は、実施形態に係る車載装置1の構成を示すブロック図である。
図3に示すように、実施形態に係る車載装置1は、通信インタフェース(I/F)2と、複数のCPU3と、DMA4と、メモリ5とを備える。
通信インタフェース2は、CAN(Controller Area Network)等のネットワークNを介して上記した車載機器等からデータを受信してCPU3へ送り、CPU3が生成したデータを、ネットワークNを介して車載機器へ送信する。
CPU3は、例えば、メモリ5に格納された図示しない演算プログラムに基づいて車載機器を制御するための各種演算を行う。また、1つのCPU3は、1つのコアに相当する。すなわち、実施形態に係る車載装置1は、マルチコア(複数のCPU3)の各コアが所定の演算を分担して行うマルチプロセッシングが可能である。また、複数のCPU3それぞれには、TCM31が内蔵される。TCM31は、例えば、RAM(Random Access Memory)である。
複数のCPU3は、演算を分担するにあたって、まず、代表となる任意の一のCPU3を決定する。代表となるCPU3は、予め決めておいたCPU3であってもよく、演算の度に、代表となるCPU3を切り替えることとしてもよい。
そして、代表となるCPU3のみがDMA4に対して転送指示を行う。この転送指示では、代表となるCPU3は、複数のCPU3それぞれに対する演算データ51の割り当て分を決定する。
例えば、代表となるCPU3は、複数のCPU3それぞれに対して演算データ51を均等に割り当てる。あるいは、代表となるCPU3は、他のCPU3に比べて、自身に割り当てられる演算データ51を少なくしてもよい。これは、代表となるCPU3が、演算途中に他の処理を行う可能性があるためである。
他の処理としては、例えば、他のCPU3から演算終了通知を受け付けて、かかる他のCPU3に対して新たな演算データ51の転送指示を送信する処理がある。これにより、演算途中で、他の処理を行ったとしても、代表となるCPU3の演算が遅れることを防止できる。
なお、複数のCPU3は、演算が終了して、新たな演算データ51がTCM31に転送された場合、古い演算データ51が上書きされる。
そして、代表となるCPU3は、すべての演算が終了すると、他のCPU3から演算結果を収集し、車載の電子制御装置(外部装置の一例)等へかかる演算結果を出力する。
このように、複数のCPU3のうち、代表となるCPU3が転送指示や演算結果の収集等を一手に引き受けることで、他のCPU3の処理速度が低下することを防止でき、全体的な演算速度を向上させることができる。
なお、他のCPU3は、代表となるCPU3へ演算終了の通知を行った場合に、代表となるCPU3が演算途中であった場合、代表となるCPU3に代わって他のCPU3がDMA4へ転送指示を送信してもよい。これにより、代表となるCPU3の演算が遅れることを防止することができる。
また、代表となるCPU3は、他のCPU3から演算終了の通知を受け付けたタイミングで、演算結果を収集してもよく、あるいは、すべての演算が終了してからまとめて他のCPU3の演算結果を収集してもよい。
DMA4は、例えば、転送専用回路であるDMAC(DMA Controller)等で構成され、CPU3から転送指示があった場合に、メモリ5およびTCM31の間で直接データの転送を行う。
具体的には、DMA4は、転送指示により指示された各CPU3への演算データ51の割り当て分を読み出し、それぞれ対応するTCM31へ転送する。このように、CPU3に代わってDMA4が演算データ51の転送を行うことで、CPU3の処理負荷が軽減されるため、CPU3の演算速度を向上させることができる。
なお、DMA4は、CPU3から転送指示を受信する度に、演算データ51の読み出し、転送を行ってもよいが、例えば、すべてのCPU3への演算データ51の転送指示を受け付けてから、まとめて演算データ51の読み出し、転送を行ってもよい。
メモリ5は、例えば、RAM(Random Access Memory)や、ROM(Read Only Memory)等で構成される。メモリ5は、演算データ51や、各種演算プログラムを記憶する。演算データ51は、CPU3の演算に用いられるデータである。例えば、演算データ51は、ニューラルネットワークに用いられる重みのパラメータが含まれる。
次に、図4を用いて、実施形態に係る車載装置1の処理手順について説明する。図4は、実施形態に係る車載装置1の処理手順を示すシーケンス図である。なお、図4では、CPU3aが代表であることとする。
図4に示すように、まず、代表であるCPU3aは、DMA4に対して演算データの転送指示を行う(ステップS1)。このときには、すべてのCPU3a,3b,3cへ演算データを転送するための転送指示が送信される。
つづいて、DMA4は、CPU3aの転送指示に基づいてメモリ5から演算データを読み出す(ステップS2)。つづいて、DMA4は、各TCM31a,31b,31cに読み出した演算データの割り当て分を転送する(ステップS3)。
つづいて、CPU3aは、TCM31aに転送された演算データの割り当て分をTCM31aから読み出して演算を行う(ステップS4−1)。また、CPU3bは、TCM31bに転送された演算データの割り当て分をTCM31bから読み出して演算を行う(ステップS4−2)。また、CPU3cは、TCM31cに転送された演算データの割り当て分をTCM31cから読み出して演算を行う(ステップS4−3)。
つづいて、CPU3bは、演算が終了すると、CPU3aに対して演算終了を通知する(ステップS5)。この際、CPU3bは、演算結果を併せてCPU3aへ出力する。CPU3aは、自身の演算を中断して、DMA4に対してCPU3bへ演算データを転送するための転送指示を行い(ステップS6)、演算を再開する。
つづいて、DMA4は、CPU3aの転送指示に基づいてメモリ5からCPU3bへの割り当て分となる演算データを読み出す(ステップS7)。そして、DMA4は、読み出した演算データをTCM31bへ転送する(ステップS8)。
つづいて、CPU3bは、TCM31bに転送された演算データの割り当て分をTCM31bから読み出して演算を行う(ステップS9)。また、CPU3aは、ステップS4−1における演算を終了すると、DMA4に対して新たな演算データの転送指示を行う(ステップS10)。
DMA4は、CPU3aの転送指示に基づいてメモリ5からCPU3aへの割り当て分となる演算データを読み出す(ステップS11)。そして、DMA4は、読み出した演算データをTCM31aへ転送する(ステップS12)。
CPU3aは、TCM31aに転送された演算データの割り当て分をTCM31aから読み出して演算を行う(ステップS13)。つづいて、CPU3cは、ステップS4−3における演算を終了すると、CPU3aに対して演算終了を通知する(ステップS14)。この際、CPU3cは、演算結果を併せてCPU3aへ通知する。
つづいて、CPU3bは、ステップS9における演算を終了すると、CPU3aに対して演算終了を通知する(ステップS15)。この際、CPU3bは、演算結果を併せてCPU3aへ通知する。
つづいて、CPU3aは、ステップS13における演算を終了すると、かかる演算結果と、CPU3bおよびCPU3cから収集した演算結果とを併せて外部出力し(ステップS16)、処理を終了する。
上述してきたように、実施形態に係る車載装置1(マイコン装置の一例)は、複数のCPU3と、メモリ5と、DMA4とを備える。複数のCPU3は、TCM31を有する。メモリ5は、所定の演算に用いられる演算データ51を記憶する。DMA4は、CPU3の転送指示に基づいてメモリ5から演算データ51を読み出し、複数のCPU3それぞれのTCM31に演算データ51の割り当て分を転送する。また、複数のCPU3は、TCM31に転送された演算データ51の割り当て分を用いて演算を分担して行う。これにより、演算速度を向上させることができる。
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
1 車載装置
2 通信インタフェース
3,3a,3b,3c CPU
4 DMA
5 メモリ
51 演算データ
N ネットワーク
2 通信インタフェース
3,3a,3b,3c CPU
4 DMA
5 メモリ
51 演算データ
N ネットワーク
Claims (5)
- 密結合メモリを有する複数のCPUと、
所定の演算に用いられる演算データを記憶するメモリと、
前記CPUの転送指示に基づいて前記メモリから前記演算データを読み出し、前記複数のCPUそれぞれの前記密結合メモリに前記演算データの割り当て分を転送するDMAと、を備え、
前記複数のCPUは、
前記密結合メモリに転送された前記演算データの割り当て分を用いて前記所定の演算を分担して行うこと
を特徴とするマイコン装置。 - 前記複数のCPUは、
ニューラルネットワークを用いて車両の制御に関する前記演算を行い、
前記メモリは、
前記演算データとして、前記ニューラルネットワークの重みパラメータを記憶すること
を特徴とする請求項1に記載のマイコン装置。 - 前記複数のCPUは、
任意の一の前記CPUが代表して前記DMAに対して前記転送指示を行うこと
を特徴とする請求項1または2に記載のマイコン装置。 - 代表となる前記CPUは、
他の前記CPUから前記演算データを用いた演算結果を収集し、外部装置へ当該演算結果を出力すること
を特徴とする請求項3に記載のマイコン装置。 - 所定の演算に用いられる演算データをメモリに記憶する記憶工程と、
密結合メモリを有する複数のCPUの転送指示に基づいて前記メモリから前記演算データを読み出し、前記複数のCPUそれぞれの前記密結合メモリに前記演算データの割り当て分をDMAが転送する転送工程と、を含み、
前記複数のCPUは、
前記密結合メモリに転送された前記演算データの割り当て分を用いて前記所定の演算を分担して行うこと
を特徴とするマイコン装置の制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018077517A JP2019185527A (ja) | 2018-04-13 | 2018-04-13 | マイコン装置およびマイコン装置の制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2018077517A JP2019185527A (ja) | 2018-04-13 | 2018-04-13 | マイコン装置およびマイコン装置の制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2019185527A true JP2019185527A (ja) | 2019-10-24 |
Family
ID=68341415
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018077517A Pending JP2019185527A (ja) | 2018-04-13 | 2018-04-13 | マイコン装置およびマイコン装置の制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2019185527A (ja) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330928A (ja) * | 1999-05-20 | 2000-11-30 | Hitachi Ltd | 高速転送を行う並列処理システム |
JP2008541215A (ja) * | 2005-05-04 | 2008-11-20 | エイアールエム リミテッド | データ処理装置内でのデータ・エンジンの使用 |
JP2012137946A (ja) * | 2010-12-27 | 2012-07-19 | Renesas Electronics Corp | 半導体装置 |
WO2016170786A1 (ja) * | 2015-04-21 | 2016-10-27 | パナソニックIpマネジメント株式会社 | 情報処理システム、情報処理方法、およびプログラム |
-
2018
- 2018-04-13 JP JP2018077517A patent/JP2019185527A/ja active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000330928A (ja) * | 1999-05-20 | 2000-11-30 | Hitachi Ltd | 高速転送を行う並列処理システム |
JP2008541215A (ja) * | 2005-05-04 | 2008-11-20 | エイアールエム リミテッド | データ処理装置内でのデータ・エンジンの使用 |
JP2012137946A (ja) * | 2010-12-27 | 2012-07-19 | Renesas Electronics Corp | 半導体装置 |
WO2016170786A1 (ja) * | 2015-04-21 | 2016-10-27 | パナソニックIpマネジメント株式会社 | 情報処理システム、情報処理方法、およびプログラム |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5829890B2 (ja) | 半導体データ処理装置、タイムトリガ通信システム及び通信システム | |
JP2007034359A (ja) | 分散制御装置 | |
US20110022809A1 (en) | Consolidated electronic control unit and relay program implemented in the same | |
CN105868028A (zh) | 一种进程间共享数据的方法、装置及终端 | |
US10437589B2 (en) | Distributed processing control system and distributed processing control method | |
JP5360061B2 (ja) | マルチプロセッサシステム及びその制御方法 | |
CN106991071B (zh) | 内核调度方法及系统 | |
CN111210136A (zh) | 一种机器人任务调度的方法及服务器 | |
JP2019196732A (ja) | 車載通信装置 | |
CN104199699B (zh) | 程序加载方法、芯片启动方法、装置及主控设备 | |
JP2019177809A (ja) | 制御装置、制御装置用のプログラム、及び制御方法 | |
JP2019177808A (ja) | 制御装置、制御装置用のプログラム、及び制御方法 | |
KR20180108831A (ko) | 제어기를 작동시키기 위한 방법 및 장치 | |
JP5533789B2 (ja) | 車載電子制御装置 | |
JP2014191655A (ja) | マルチプロセッサ、電子制御装置、プログラム | |
US20110022767A1 (en) | Dma controller with interrupt control processor | |
JP2019185527A (ja) | マイコン装置およびマイコン装置の制御方法 | |
CN102929800B (zh) | Cache一致性协议派生处理方法 | |
JP2018160180A (ja) | 情報処理システム、情報処理装置および情報処理システムの制御方法 | |
US20230067432A1 (en) | Task allocation method, apparatus, electronic device, and computer-readable storage medium | |
JP7106868B2 (ja) | 電子制御装置 | |
CN109783220B (zh) | 内存分配方法、装置、计算机系统及存储介质 | |
CN105659216B (zh) | 多核处理器系统的缓存目录处理方法和目录控制器 | |
JP7204443B2 (ja) | 車両制御装置およびプログラム実行方法 | |
JP6188895B1 (ja) | 車載制御プログラムの実行時データ取得方法および車載制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20210303 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20220131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20220301 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20220906 |