(57)【要約】【課題】演算速度を向上させることができるマイコン装置およびマイコン装置の制御方法を提供すること。【解決手段】実施形態に係るマイコン装置は、複数のＣＰＵと、メモリと、ＤＭＡとを備える。複数のＣＰＵは、密結合メモリを有する。メモリは、所定の演算に用いられる演算データを記憶する。ＤＭＡは、ＣＰＵの転送指示に基づいてメモリから演算データを読み出し、複数のＣＰＵそれぞれの密結合メモリに演算データの割り当て分を転送する。また、複数のＣＰＵは、密結合メモリに転送された演算データの割り当て分を用いて演算を分担して行う。【選択図】図３
2019185527.tif 000002
【特許請求の範囲】
【請求項１】
密結合メモリを有する複数のＣＰＵと、
所定の演算に用いられる演算データを記憶するメモリと、
前記ＣＰＵの転送指示に基づいて前記メモリから前記演算データを読み出し、前記複数のＣＰＵそれぞれの前記密結合メモリに前記演算データの割り当て分を転送するＤＭＡと、を備え、
前記複数のＣＰＵは、
前記密結合メモリに転送された前記演算データの割り当て分を用いて前記所定の演算を分担して行うこと
を特徴とするマイコン装置。
【請求項２】
前記複数のＣＰＵは、
ニューラルネットワークを用いて車両の制御に関する前記演算を行い、
前記メモリは、
前記演算データとして、前記ニューラルネットワークの重みパラメータを記憶すること
を特徴とする請求項１に記載のマイコン装置。
【請求項３】
前記複数のＣＰＵは、
任意の一の前記ＣＰＵが代表して前記ＤＭＡに対して前記転送指示を行うこと
を特徴とする請求項１または２に記載のマイコン装置。
【請求項４】
代表となる前記ＣＰＵは、
他の前記ＣＰＵから前記演算データを用いた演算結果を収集し、外部装置へ当該演算結果を出力すること
を特徴とする請求項３に記載のマイコン装置。
【請求項５】
所定の演算に用いられる演算データをメモリに記憶する記憶工程と、
密結合メモリを有する複数のＣＰＵの転送指示に基づいて前記メモリから前記演算データを読み出し、前記複数のＣＰＵそれぞれの前記密結合メモリに前記演算データの割り当て分をＤＭＡが転送する転送工程と、を含み、
前記複数のＣＰＵは、
前記密結合メモリに転送された前記演算データの割り当て分を用いて前記所定の演算を分担して行うこと
を特徴とするマイコン装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイコン装置およびマイコン装置の制御方法に関する。
【背景技術】
【０００２】
従来、エンジンや、ブレーキ等のパワートレイン系機器における制御のための演算を行うマイコン装置が知られている。かかるマイコン装置は、組み込みマイコンとも呼ばれ、特定の機器を制御するために設計されたシステムが組み込まれる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３５０１３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、近年、パワートレイン系機器の演算にＡＩ（Artificial  Intelligence）の活用が望まれている。しかしながら、従来のマイコン装置は、ＣＰＵの性能スペック上、ＡＩ等の大量演算を行うとなると、演算に時間を要するという課題があった。
【０００５】
本発明は、上記に鑑みてなされたものであって、演算速度を向上させることができるマイコン装置およびマイコン装置の制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決し、目的を達成するために、本発明に係るマイコン装置は、複数のＣＰＵと、メモリと、ＤＭＡとを備える。前記複数のＣＰＵは、密結合メモリを有する。前記メモリは、所定の演算に用いられる演算データを記憶する。前記ＤＭＡは、前記ＣＰＵの転送指示に基づいて前記メモリから前記演算データを読み出し、前記複数のＣＰＵそれぞれの前記密結合メモリに前記演算データの割り当て分を転送する。また、前記複数のＣＰＵは、前記密結合メモリに転送された前記演算データの割り当て分を用いて前記所定の演算を分担して行う。
【発明の効果】
【０００７】
本発明によれば、演算速度を向上させることができる。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る車載装置の制御方法の概要を示す図である。
【図２】図２は、実施形態に係る車載装置の制御方法の概要を示す図である。
【図３】図３は、実施形態に係る車載装置の構成を示すブロック図である。
【図４】図４は、実施形態に係る車載装置の処理手順を示すシーケンス図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本願の開示するマイコン装置およびマイコン装置の制御方法の実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。
【００１０】
まず、図１および図２を用いて、実施形態に係る車載装置（マイコン装置の一例）の制御方法の概要について説明する。図１および図２は、実施形態に係る車載装置１の制御方法の概要を示す図である。図１には、入力データＸ１〜Ｘｎ、複数の重みパラメータｗ１〜ｗｍ、出力データＹ１〜Ｙｋにより演算されるニューラルネットワークの一例を示している。
【００１１】
実施形態に係る車載装置１は、例えば、車載機器を電子的に制御する各種の電子制御装置に適用することができる。電子制御装置が制御対象とする車載機器は、エンジン、変速機、ブレーキ等パワートレイン系機器、エアコン、シート、ドアロック等のボディ系機器、ナビゲーション装置等の情報系機器、およびエアバックやシートベルト等の安全系機器等である。
【００１２】
例えば、車載装置１は、エンジンのノッキングを高精度に判定するための手法として上記したニューラルネットワークを用いることができる。かかる場合、入力データＸ１〜Ｘｎは、ノックセンサの波形を示す画像であり、出力データＹ１〜Ｙｋは、ノッキングの有無の確率となる。なお、ニューラルネットワークによる推定は、ノッキング判定に限らず任意のものであってよい。
【００１３】
ところで、近年、上記のように、車載機器の制御についてＡＩの活用が望まれている。しかしながら、従来の車載装置は、ＣＰＵの性能スペック上、ＡＩ等の大量演算を行うとなると、演算に時間を要するという課題があった。
【００１４】
そこで、実施形態に係る車載装置１は、複数のＣＰＵ３により並列処理を行う。具体的には、図２に示すように、実施形態に係る車載装置１は、複数のＣＰＵ（Central  Processing  Unit）３ａ，３ｂ，３ｃと、ＤＭＡ（Direct  Memory  Access）４と、メモリ５とを備える。なお、複数のＣＰＵ３ａ，３ｂ，３ｃを特に区別しない場合、「複数のＣＰＵ３」あるいは単に「ＣＰＵ３」と記載する場合がある。
【００１５】
また、複数のＣＰＵ３それぞれには、ＴＣＭ（Tightly  Coupled  Memory）３１ａ，３１ｂ，３１ｃが内蔵される。なお、ＴＣＭ３１ａ，３１ｂ，３１ｃを特に区別しない限り、ＴＣＭ３１と記載する場合がある。ＴＣＭ３１は、密結合メモリとも呼ばれ、各ＣＰＵ３に直接結合することで、ＣＰＵ３が高速にアクセスできるメモリである。
【００１６】
また、メモリ５は、演算データ５１を記憶する。演算データ５１は、ＣＰＵ３の演算に用いられるデータである。なお、図２に示す例では、演算データ５１は、ニューラルネットワークの重みパラメータｗ１〜ｗｍであることとする。
【００１７】
実施形態に係る車載装置１は、まず、ニューラルネットワークにおける所定の入力データＸ１〜Ｘｎが入力された場合、複数のＣＰＵ３がＤＭＡ４に対して演算データの転送指示を行う。なお、転送指示の送信は、複数のＣＰＵ３のうち、任意の一のＣＰＵ３が代表して行うがかかる点については後述する。なお、図２では、ＣＰＵ３ａが転送指示の送信を行うこととする。
【００１８】
つづいて、ＤＭＡ４は、ＣＰＵ３ａの転送指示に基づいてメモリ５から演算データ５１を読み出し、複数のＣＰＵ３ａ，３ｂ，３ｃそれぞれのＴＣＭ３１ａ，３１ｂ，３１ｃに演算データの割り当て分を転送する。
【００１９】
そして、複数のＣＰＵ３それぞれは、ＴＣＭ３１に転送された演算データの割り当て分を用いて演算を分担する。例えば、複数のＣＰＵ３それぞれは、ニューラルネットワークの出力データＹ１〜Ｙｋそれぞれを分担して演算する。
【００２０】
このように、実施形態に係る車載装置１は、複数のＣＰＵ３がニューラルネットワーク等の大量演算を並列処理する。さらに、各ＣＰＵ３の演算において、ＴＣＭ３１に演算データ５１を転送させることで、演算データ５１をメモリ５から読み出す必要がなくなるため、演算データ５１の読み出し時間を短くすることができる。
【００２１】
すなわち、実施形態に係る車載装置１は、演算速度を向上させることができる。また、ＣＰＵ３は、ニューラルネットワークを用いて車両の制御に関する演算を行うことで、より高精度な車両制御を実現することができる。
【００２２】
次に、図３を用いて、実施形態に係る車載装置１の構成について説明する。図３は、実施形態に係る車載装置１の構成を示すブロック図である。
【００２３】
図３に示すように、実施形態に係る車載装置１は、通信インタフェース（Ｉ／Ｆ）２と、複数のＣＰＵ３と、ＤＭＡ４と、メモリ５とを備える。
【００２４】
通信インタフェース２は、ＣＡＮ（Controller  Area  Network）等のネットワークＮを介して上記した車載機器等からデータを受信してＣＰＵ３へ送り、ＣＰＵ３が生成したデータを、ネットワークＮを介して車載機器へ送信する。
【００２５】
ＣＰＵ３は、例えば、メモリ５に格納された図示しない演算プログラムに基づいて車載機器を制御するための各種演算を行う。また、１つのＣＰＵ３は、１つのコアに相当する。すなわち、実施形態に係る車載装置１は、マルチコア（複数のＣＰＵ３）の各コアが所定の演算を分担して行うマルチプロセッシングが可能である。また、複数のＣＰＵ３それぞれには、ＴＣＭ３１が内蔵される。ＴＣＭ３１は、例えば、ＲＡＭ（Random  Access  Memory）である。
【００２６】
複数のＣＰＵ３は、演算を分担するにあたって、まず、代表となる任意の一のＣＰＵ３を決定する。代表となるＣＰＵ３は、予め決めておいたＣＰＵ３であってもよく、演算の度に、代表となるＣＰＵ３を切り替えることとしてもよい。
【００２７】
そして、代表となるＣＰＵ３のみがＤＭＡ４に対して転送指示を行う。この転送指示では、代表となるＣＰＵ３は、複数のＣＰＵ３それぞれに対する演算データ５１の割り当て分を決定する。
【００２８】
例えば、代表となるＣＰＵ３は、複数のＣＰＵ３それぞれに対して演算データ５１を均等に割り当てる。あるいは、代表となるＣＰＵ３は、他のＣＰＵ３に比べて、自身に割り当てられる演算データ５１を少なくしてもよい。これは、代表となるＣＰＵ３が、演算途中に他の処理を行う可能性があるためである。
【００２９】
他の処理としては、例えば、他のＣＰＵ３から演算終了通知を受け付けて、かかる他のＣＰＵ３に対して新たな演算データ５１の転送指示を送信する処理がある。これにより、演算途中で、他の処理を行ったとしても、代表となるＣＰＵ３の演算が遅れることを防止できる。
【００３０】
なお、複数のＣＰＵ３は、演算が終了して、新たな演算データ５１がＴＣＭ３１に転送された場合、古い演算データ５１が上書きされる。
【００３１】
そして、代表となるＣＰＵ３は、すべての演算が終了すると、他のＣＰＵ３から演算結果を収集し、車載の電子制御装置（外部装置の一例）等へかかる演算結果を出力する。
【００３２】
このように、複数のＣＰＵ３のうち、代表となるＣＰＵ３が転送指示や演算結果の収集等を一手に引き受けることで、他のＣＰＵ３の処理速度が低下することを防止でき、全体的な演算速度を向上させることができる。
【００３３】
なお、他のＣＰＵ３は、代表となるＣＰＵ３へ演算終了の通知を行った場合に、代表となるＣＰＵ３が演算途中であった場合、代表となるＣＰＵ３に代わって他のＣＰＵ３がＤＭＡ４へ転送指示を送信してもよい。これにより、代表となるＣＰＵ３の演算が遅れることを防止することができる。
【００３４】
また、代表となるＣＰＵ３は、他のＣＰＵ３から演算終了の通知を受け付けたタイミングで、演算結果を収集してもよく、あるいは、すべての演算が終了してからまとめて他のＣＰＵ３の演算結果を収集してもよい。
【００３５】
ＤＭＡ４は、例えば、転送専用回路であるＤＭＡＣ（DMA  Controller）等で構成され、ＣＰＵ３から転送指示があった場合に、メモリ５およびＴＣＭ３１の間で直接データの転送を行う。
【００３６】
具体的には、ＤＭＡ４は、転送指示により指示された各ＣＰＵ３への演算データ５１の割り当て分を読み出し、それぞれ対応するＴＣＭ３１へ転送する。このように、ＣＰＵ３に代わってＤＭＡ４が演算データ５１の転送を行うことで、ＣＰＵ３の処理負荷が軽減されるため、ＣＰＵ３の演算速度を向上させることができる。
【００３７】
なお、ＤＭＡ４は、ＣＰＵ３から転送指示を受信する度に、演算データ５１の読み出し、転送を行ってもよいが、例えば、すべてのＣＰＵ３への演算データ５１の転送指示を受け付けてから、まとめて演算データ５１の読み出し、転送を行ってもよい。
【００３８】
メモリ５は、例えば、ＲＡＭ（Random  Access  Memory）や、ＲＯＭ（Read  Only  Memory）等で構成される。メモリ５は、演算データ５１や、各種演算プログラムを記憶する。演算データ５１は、ＣＰＵ３の演算に用いられるデータである。例えば、演算データ５１は、ニューラルネットワークに用いられる重みのパラメータが含まれる。
【００３９】
次に、図４を用いて、実施形態に係る車載装置１の処理手順について説明する。図４は、実施形態に係る車載装置１の処理手順を示すシーケンス図である。なお、図４では、ＣＰＵ３ａが代表であることとする。
【００４０】
図４に示すように、まず、代表であるＣＰＵ３ａは、ＤＭＡ４に対して演算データの転送指示を行う（ステップＳ１）。このときには、すべてのＣＰＵ３ａ，３ｂ，３ｃへ演算データを転送するための転送指示が送信される。
【００４１】
つづいて、ＤＭＡ４は、ＣＰＵ３ａの転送指示に基づいてメモリ５から演算データを読み出す（ステップＳ２）。つづいて、ＤＭＡ４は、各ＴＣＭ３１ａ，３１ｂ，３１ｃに読み出した演算データの割り当て分を転送する（ステップＳ３）。
【００４２】
つづいて、ＣＰＵ３ａは、ＴＣＭ３１ａに転送された演算データの割り当て分をＴＣＭ３１ａから読み出して演算を行う（ステップＳ４−１）。また、ＣＰＵ３ｂは、ＴＣＭ３１ｂに転送された演算データの割り当て分をＴＣＭ３１ｂから読み出して演算を行う（ステップＳ４−２）。また、ＣＰＵ３ｃは、ＴＣＭ３１ｃに転送された演算データの割り当て分をＴＣＭ３１ｃから読み出して演算を行う（ステップＳ４−３）。
【００４３】
つづいて、ＣＰＵ３ｂは、演算が終了すると、ＣＰＵ３ａに対して演算終了を通知する（ステップＳ５）。この際、ＣＰＵ３ｂは、演算結果を併せてＣＰＵ３ａへ出力する。ＣＰＵ３ａは、自身の演算を中断して、ＤＭＡ４に対してＣＰＵ３ｂへ演算データを転送するための転送指示を行い（ステップＳ６）、演算を再開する。
【００４４】
つづいて、ＤＭＡ４は、ＣＰＵ３ａの転送指示に基づいてメモリ５からＣＰＵ３ｂへの割り当て分となる演算データを読み出す（ステップＳ７）。そして、ＤＭＡ４は、読み出した演算データをＴＣＭ３１ｂへ転送する（ステップＳ８）。
【００４５】
つづいて、ＣＰＵ３ｂは、ＴＣＭ３１ｂに転送された演算データの割り当て分をＴＣＭ３１ｂから読み出して演算を行う（ステップＳ９）。また、ＣＰＵ３ａは、ステップＳ４−１における演算を終了すると、ＤＭＡ４に対して新たな演算データの転送指示を行う（ステップＳ１０）。
【００４６】
ＤＭＡ４は、ＣＰＵ３ａの転送指示に基づいてメモリ５からＣＰＵ３ａへの割り当て分となる演算データを読み出す（ステップＳ１１）。そして、ＤＭＡ４は、読み出した演算データをＴＣＭ３１ａへ転送する（ステップＳ１２）。
【００４７】
ＣＰＵ３ａは、ＴＣＭ３１ａに転送された演算データの割り当て分をＴＣＭ３１ａから読み出して演算を行う（ステップＳ１３）。つづいて、ＣＰＵ３ｃは、ステップＳ４−３における演算を終了すると、ＣＰＵ３ａに対して演算終了を通知する（ステップＳ１４）。この際、ＣＰＵ３ｃは、演算結果を併せてＣＰＵ３ａへ通知する。
【００４８】
つづいて、ＣＰＵ３ｂは、ステップＳ９における演算を終了すると、ＣＰＵ３ａに対して演算終了を通知する（ステップＳ１５）。この際、ＣＰＵ３ｂは、演算結果を併せてＣＰＵ３ａへ通知する。
【００４９】
つづいて、ＣＰＵ３ａは、ステップＳ１３における演算を終了すると、かかる演算結果と、ＣＰＵ３ｂおよびＣＰＵ３ｃから収集した演算結果とを併せて外部出力し（ステップＳ１６）、処理を終了する。
【００５０】
上述してきたように、実施形態に係る車載装置１（マイコン装置の一例）は、複数のＣＰＵ３と、メモリ５と、ＤＭＡ４とを備える。複数のＣＰＵ３は、ＴＣＭ３１を有する。メモリ５は、所定の演算に用いられる演算データ５１を記憶する。ＤＭＡ４は、ＣＰＵ３の転送指示に基づいてメモリ５から演算データ５１を読み出し、複数のＣＰＵ３それぞれのＴＣＭ３１に演算データ５１の割り当て分を転送する。また、複数のＣＰＵ３は、ＴＣＭ３１に転送された演算データ５１の割り当て分を用いて演算を分担して行う。これにより、演算速度を向上させることができる。
【００５１】
さらなる効果や変形例は、当業者によって容易に導き出すことができる。このため、本発明のより広範な態様は、以上のように表しかつ記述した特定の詳細および代表的な実施形態に限定されるものではない。したがって、添付の特許請求の範囲およびその均等物によって定義される総括的な発明の概念の精神または範囲から逸脱することなく、様々な変更が可能である。
【符号の説明】
【００５２】
１    車載装置
２    通信インタフェース
３，３ａ，３ｂ，３ｃ    ＣＰＵ
４    ＤＭＡ
５    メモリ
５１    演算データ
Ｎ    ネットワーク
【図１】
2019185527.tif 000003
【図２】
2019185527.tif 000004
【図３】
2019185527.tif 000005
【図４】
2019185527.tif 000006