JP2019125093A - 電子制御装置 - Google Patents

電子制御装置 Download PDF

Info

Publication number
JP2019125093A
JP2019125093A JP2018004234A JP2018004234A JP2019125093A JP 2019125093 A JP2019125093 A JP 2019125093A JP 2018004234 A JP2018004234 A JP 2018004234A JP 2018004234 A JP2018004234 A JP 2018004234A JP 2019125093 A JP2019125093 A JP 2019125093A
Authority
JP
Japan
Prior art keywords
task
processing time
unit
processing
electronic control
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
Application number
JP2018004234A
Other languages
English (en)
Other versions
JP7106868B2 (ja
Inventor
孝司 阿部
Koji Abe
孝司 阿部
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Denso Corp
Original Assignee
Denso Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Denso Corp filed Critical Denso Corp
Priority to JP2018004234A priority Critical patent/JP7106868B2/ja
Publication of JP2019125093A publication Critical patent/JP2019125093A/ja
Application granted granted Critical
Publication of JP7106868B2 publication Critical patent/JP7106868B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】ヘテロジニアスマルチコアを採用した電子制御装置において、より効果的にタスクの割り当てが可能な電子制御装置を提供する。【解決手段】電子制御装置は、複数の演算処理装置を含み、入力信号に基づいて処理を実行し出力信号を出力する制御部と、制御部が実行する処理におけるタスクごとに、該タスクを特徴付ける特徴量を抽出するとともに、特徴量に対応する実際のタスク処理時間を学習するタスク処理時間予測部と、を備える。タスク処理時間予測部は、タスクを実行する際に、実行すべきタスクに紐づく特徴量に基づいて、特徴量に対応して学習されたタスク処理時間を予測し、予測されたタスク処理時間に応じて、演算処理装置におけるタスクが実行可能な空き領域に処理を追加する。【選択図】図2

Description

この明細書の開示は、ヘテロジニアスマルチコアを採用した電子制御装置に関する。
自動運転や自動駐車などの先進安全への要求が高まっており、より高機能な車載電子制御装置が求められている。車両に入力される情報に対する演算は制御プロセッサにより実行されるが、入力される情報の多様化や制御すべき対象の高度化に伴い、特定の機能に特化したプロセッサ(例えば画像処理に特化したGPGPUなど)を必要な機能ごとに備えた、ヘテロジニアスマルチコアを採用した電子制御装置が用いられつつある。
ヘテロジニアスマルチコアを採用する場合、タスクの実行前の段階でコアごとにタスクの割り当てを決める必要がある。しかしながら、負荷を事前に予測し完璧にタスクの振り分けを行うことは困難である。そこで、第1CPUで所定時間内に処理しきれない可能性がある場合に、第2CPUにタスクの移動を行い実行(処理)させる方式が考えられる。
特許文献1の開示は、第1CPUおよび第2CPUと、第1CPUに対応した第1メモリおよび第2CPUに対応した第2メモリと、を有するマイクロコンピュータにおいて、第1メモリ内にデータ領域を持つようにプログラムされたタスクが第2メモリに転送されて第2CPUで実行される場合に、該タスクによる第1メモリへのアクセスが第2メモリへのアクセスとなるように、第2CPUから出力されたアドレスを変換するためのアドレス変換回路を有する。これにより、負荷分散のためCPU間でタスクを移行する場合の演算性能の低下を回避することができる。
また、ソフトウェアが各タスクの処理時間を管理し、CPUごとの実行可否を判定する支援装置を有する構成も考えられる。
特開2009−199414号公報
しかしながら、実際の処理においては、類似したタスクであってもその処理時間は一律ではなく、関連するソフトアーキテクチャやハードアーキテクチャによって実行時間に大きなばらつきが生じる虞がある。このため、アクセス先のメモリを変更した際のアクセスサイクルを削減したり、処理帯域の監視によりスループットの低下を抑制したりする手段では、スループットの向上には十分ではない。
また、処理時間のばらつきは、タスクの移行やメモリへのアクセスに係る処理増加させる虞があり、処理にかかる消費電力の増加を誘発する場合がある。
そこで、この明細書の開示は、ヘテロジニアスマルチコアを採用した電子制御装置において、より効果的にタスクの割り当てが可能な電子制御装置を提供することを目的とする。
この明細書の開示は、上記目的を達成するために以下の技術的手段を採用する。なお、特許請求の範囲およびこの項に記載した括弧内の符号は、ひとつの態様として後述する実施形態に記載の具体的手段との対応関係を示すものであって、技術的範囲を限定するものではない。
上記目的を達成するために、この明細書に開示される電子制御装置は、複数の演算処理装置(10,30,50)を含み、入力信号に基づいて処理を実行し出力信号を出力する制御部(70)と、制御部が実行する処理におけるタスクごとに、該タスクを特徴付ける特徴量を抽出するとともに、特徴量に対応する実際のタスク処理時間を学習するタスク処理時間予測部(80)と、を備え、タスク処理時間予測部は、タスクを実行する際に、実行すべきタスクに紐づく特徴量に基づいて、特徴量に対応して学習されたタスク処理時間を予測し、予測されたタスク処理時間に応じて、演算処理装置におけるタスクが実行可能な空き領域に処理を追加する。
これによれば、特徴量に基づいてタスク処理時間を学習させるので、類似したタスクであってもタスクの処理時間をより精度良く予測することができる。そして、精度良く予測されたタスク処理時間に基づいてタスクの割り当てを決定することができるので、ヘテロジニアスマルチコアを採用したマイコンにおけるスループットを向上することができる。
また、演算処理装置において処理が実行されていない空き領域に、効率よく処理を割り当てることができるので、メモリアクセスの回数を抑制できるとともに処理待ちの時間を抑制できる。このため、電子制御装置としての電力消費量を抑制することができる。
電子制御装置の概略構成を示す図である。 電子制御装置の機能ブロックを示すブロック図である。 制御部の動作を示すフローチャートである。 タスク処理時間予測部の動作を示すフローチャートである。 学習データ取得部の動作を示すフローチャートである。 機械学習部の動作を示すフローチャートである。 処理追加部の動作を示すフローチャートである。 タスク監視処理部の動作を示すフローチャートである。 電子制御装置の動作を示すタイミングチャートである。
以下に、図面を参照しながら本開示を実施するための複数の形態を説明する。各形態において先行する形態で説明した事項に対応する部分には同一の参照符号を付して重複する説明を省略する場合がある。各形態において構成の一部のみを説明している場合は、構成の他の部分については先行して説明した他の形態を適用することができる。各形態で具体的に組み合わせが可能であることを明示している部分同士の組み合わせばかりではなく、特に組み合わせに支障が生じなければ、明示していなくても形態同士を部分的に組み合せることも可能である。
(第1実施形態)
最初に、図1および図2を参照して、本実施形態に係る電子制御装置の概略構成について説明する。
この電子制御装置100は、車両における制御対象を制御するECU、例えばエンジンECU200などに搭載されるマイコンを含むものであり、外部からの入力信号に対して出力信号を発出し、もってアクチュエータ等を制御する。
入力信号とは例えば車両の走行状態に関する各種情報であり、電子制御装置100は入力された情報に基づいて適切なエンジン制御をさせるための出力信号を発出する。出力信号に基づいてエンジン回転数やスロットル開度が決定される。また別の例では、入力信号は例えば車両周辺の映像であり、電子制御装置100は、入力された車両周辺の映像に基づいて車両の周囲の駐車スペースの状態を解析して出力信号を発出する。出力信号に基づいて車輪の角度や車両速度が制御され、車両が適切な位置に駐車する。
まず、図1を参照して、電子制御装置100のハードウェア構成について説明する。この電子制御装置100は、複数のCPU10と、PMU20と、GPGPU30と、キャッシュ40と、演算ユニット50と、メモリ60と、を備えている。そして、これらの各要素は、バス110によって相互に接続されている。
CPU10は中央演算処理装置であり、入力された入力信号に基づいてプログラムを実行して出力信号を出力している。CPU10は、後述するメモリ60に格納されたプログラムを読み込んで実行することで、入力信号を処理して出力信号に変換している。本実施形態におけるCPU10は、同一構成のコアを複数備えたマルチコア構成であり、実行すべき処理を複数のコアで分散処理している。これにより、比較的高負荷な処理であっても短時間に出力信号を出力することができる。なお、CPU10を構成するアーキテクチャの種類は限定されないし、後述するキャッシュ40とは別に独自のキャッシュメモリを有していても良い。
PMU20はプロセシングモニタユニットであり、CPU10のほか、後述のGPGPU30や演算ユニット50の演算の状況を監視する部分である。PMU20は、プログラムカウンタごとに処理に係るトレースログや実行に要した時間を抽出し、キャッシュ40やメモリ60などの記憶装置に保持する。
ここで、トレースログとは、プログラムの進行状況が記載されたログデータであり、特許請求の範囲に記載の特徴量に相当する情報を含むデータである。ひとつのタスクの処理は、1つ以上のアドレスで実行される処理集まりであり、PMU20は、タスクごとにトレースログを紐付ける。すなわち、タスクごとに特徴量を収集する。
また、実行に要した時間とは、プログラムカウンタにより指定されたアドレスで実行された処理に要した時間である。PMU20は、上記した特徴量と同様に、タスクごとに処理に要した時間を収集する。これにより収集された時間は、タスクに対応したものであり、特許請求の範囲に記載のタスク処理時間に相当する。
GPGPU30はジェネラルパーパスグラフィックプロセシングユニットであり、ヘテロジニアスマルチコアを構成するプロセッサの一例として電子制御装置100に含まれている。GPGPU30は、画像処理に最適化された処理装置であり、入力信号としての静止画または動画の処理に用いられる。なお、GPGPU30を構成するアーキテクチャの種類は限定されないし、後述するメモリ60とは別に独自のメモリを有していても良い。
キャッシュ40は記憶装置であり、転送元のハードウェアと転送先のハードウェアとの間でプログラムやその他データの一部または全部およびその参照を一時的に保持する機能を有している。キャッシュ40は、例えばCPU10やPMU20、GPGPU30が接続されたバス110に接続されており、各ハードウェア間で送受信されるデータを一時的に保持する。キャッシュ40は記憶階層の上位レベルであるCPU10のキャッシュメモリと、下位レベルであるメモリ60とを仲介する記憶階層に位置している。
演算ユニット50は、CPU10やGPGPU30と同様に入力信号に対して処理を実行して出力信号を発出するものであるが、ソフトウェアを実装するCPU10やGPGPU30とは異なり、ハードウェア実装により処理を実行する専用ユニットである。演算ユニット50には、例えば、ハードウェアアクセラレータなどがある。演算ユニット50もヘテロジニアスマルチコアを構成するプロセッサの一例として電子制御装置100に含まれている。
メモリ60は記憶装置であり、例えばフラッシュメモリ、ハードディスク、SSDなどのROMや、DRAMやSRAMといったランダムアクセスメモリ(RAM)である。メモリ60はプログラムやその他のデータを保持している。メモリ60は、CPU10やGPGPU30で演算された結果や、収集される学習データ等を保持している。CPU10やGPGPU30が命令を実行する際には、求められたタスクに応じてメモリ60からプログラムが読み出され、メモリ60あるいはキャッシュ40に一時的に保持された入力信号が読み出されたプログラムに基づいて処理される。
本実施形態においては、複数のCPU10、GPGPU30、および演算ユニット50が、特許請求の範囲に記載の演算処理装置に相当し、制御部を構成する。
次いで、図2を参照して、電子制御装置100が備える機能ブロックについて説明する。なお、以下に説明する各機能は、ハードウェア、ソフトウェアのいずれによって実現されてもよい。
図2に示すように、電子制御装置100は、機能ブロックとして、制御部70と、タスク処理時間予測部80と、を備えている。タスク処理時間予測部80は、内部の機能ブロックとして、監視部81、学習データ取得部82、機械学習部83、処理追加部84、および、タスク監視処理部85を有している。
制御部70は、入力信号に基づいて処理を実行し、出力信号を生成および発出する部位である。制御部70の上記機能は主にプロセッサによって実行されるのであり、CPU10、GPGPU30、演算ユニット50によって実現される。制御部70は、プログラムカウンタをカウントアップしながら入力信号に基づいたプログラムを実行し、入力信号に対する処理を行うとともに、プログラムの内容に応じた出力信号を出力する。
タスク処理時間予測部80は、制御部70により実行される処理をプログラムカウンタごとに監視し、タスクの処理に要する時間を機械学習アルゴリズムにより学習し、その結果を以ってタスク処理時間を予測する。上記のとおり、タスク処理時間予測部80は、内部の機能ブロックとして、監視部81、学習データ取得部82、機械学習部83、処理追加部84、および、タスク監視処理部85を有している。
監視部81は、制御部70が実行するタスクに含まれる処理をプログラムカウンタごとに監視する部位である。具体的には、監視部81は、制御部70が実行する処理に関するトレースログを取得し、処理に要する時間を計測している。監視部81の機能は、おもにPMU20が担当する。トレースログに含まれる要素としては、例えば、実行サイクル数(Processing cycle)、全実行命令数(Number of instruction)、条件分岐のtakenの割合(Branch taken)、L1Dキャッシュのヒット率(Hit ration of Level1 data)、L1Iキャッシュのヒット率(Hit ration of Level1 Instruction)、L2Dキャッシュのヒット率(Hit ration of Level2 data)、L2Iキャッシュのヒット率(Hit ration of Level2 Instruction)、条件分岐命令中における分岐先の処理率(Predictable branch speculatively executed)などがある。なお、L1Dキャッシュ、L1Iキャッシュ、L2Dキャッシュ、L2Iキャッシュは、キャッシュ40に含まれるキャッシュに属しても良いし、CPU10を構成するチップ内に内蔵されるキャッシュメモリに属しても良い。
トレースログの取得サイクルは、本実施形態のようにプログラムカウンタごととしても良いし、単位時間あたりに設定したり、関数ごと、タスクごとに設定したりしても良い。
監視部81はトレースログおよびタスク処理時間を学習データ取得部82に渡す。ここで、トレースログの各項目のうち、タスクの処理時間に影響を与えるものを特徴量と称する。上記したトレースログの例はすべてタスクの処理時間に影響を及ぼすものであり、特徴量の例でもある。特徴量は、ハードウェア単体の情報だけでも、ソフトウェア単体の情報だけでもなく、ハードウェアとソフトウェアの協業による双方の特徴を畳み込んだ制御全体としての特徴を示すパラメータである。よって、ハードウェアやソフトウェアが変更になれば特徴量の値も変化するし、ノイズ、電子制御装置100が置かれる環境温度、入力信号などの外的要因によっても変化する。
学習データ取得部82は、監視部81から特徴量およびタスク処理時間の情報を取得し、学習データとして統計的に整理する部位である。タスク処理時間の情報は、後に詳述するタスク監視処理部85からも取得する。学習データは、必ずしも電子制御装置100自身の備えるメモリ60に格納される必要はなく、例えば、クラウド上に格納され、他のECU等と学習データを共有しても良い。
機械学習部83は、所定のタスクに関連する特徴量を抽出し、その特徴量を有した状態で実行されたタスクのタスク処理時間と特徴量とを関連付けて学習する部位である。この学習は機械学習アルゴリズムを利用して行われる。機械学習アルゴリズムは、例えば、k近似法、SVM(support vector machine)、決定木、ランダムフォレストなどを用いた統計的分類アルゴリズムである。機械学習部83により、実行されるタスクに対応して入力される特徴量(説明変数)に対して、タスク処理時間が目的変数として紐付けられる。
なお、タスクによっては、特徴量がほぼ同一であってもタスク処理時間が大きくばらつく場合があるが、ばらつくという事実自体も学習する。すなわち、特徴量に対して、タスク処理時間が略一定なのか、あるいは一定しないのかも学習する。
機械学習部83は、特徴量とタスク処理時間との紐付けを機械学習アルゴリズムにより行うとともに、入力された特徴量に対して、予測されるタスク処理時間を出力して処理追加部84に渡す。
処理追加部84は、予測されたタスク処理時間に応じて、CPU10やGPGPU30における、タスクが実行可能な空き領域に別の処理を追加する部位である。処理追加部84は、予測されたタスク処理時間に応じて追加すべき処理を決定し、その処理を実行可能なCPU10あるいはGPGPU30などのプロセッサに処理を追加する。
タスク監視処理部85は、予測したタスク処理時間の正答率を算出して学習データに反映させ、学習データにおける所定のタスクに対するタスク処理時間のばらつきを検出し、予測したタスク処理時間に基づいて投入した別の処理が実際に処理を完了できたか否かを検証する部位である。ここで、正答率とは、例えば、予測されたタスク処理時間と実際に実行されたときのタスク処理時間との差の絶対値が所定の許容値以下であるときを正答とし、差の絶対値が許容値より小さいときを誤答として、正答と誤答の総計に対する正答の数の割合として算出されるものである。タスク監視処理部85は、タスク処理時間の情報を監視部81から取得している。
次に、図3〜図9を参照して、本実施形態にかかる電子制御装置100の具体的な動作フローについて説明する。図3は制御部70の動作を示すフローチャートであり、図4〜図8はタスク処理時間予測部80の動作を示すフローチャートであり、図9は制御部70の実行に係るタイミングチャートである。
図3は、電子制御装置100が入力信号に対して出力信号を発出するフローを示す図である。図3に示すように、ステップS1において電子制御装置100に入力信号が入力されると、ステップS2に示すように制御部70が入力信号に応じた処理を行う。制御部70はプログラムを読み込むなどして入力信号を加工し、ステップS3に示すように出力信号を生成して発出する。
図4は、タスク処理時間予測部80の全体的な動作フローを示す図である。本実施形態では、タスク処理時間予測部80が、制御部70が実行するプログラムの進行に応じてカウントアップするプログラムカウンタ毎に図4に示すフローを実施して、タスクに対応した処理時間の学習ならびに予測を行う例について説明する。ここで学習の対象とされるタスクは、図9に示す例では、「TASK A」「TASK B」「TASK C」と示された処理である。
図4に示すように、タスク処理時間予測部80は、ステップS100を実行する。ステップS100は、学習データ取得部82が監視部81から特徴量およびタスク処理時間の情報を取得し、学習データとして統計的に整理するステップであり、図5に示すフローに従う。図を参照して詳しく説明する。
図5に示すように、まずステップS101が実行される。ステップS101は、学習データ取得部82が監視部81から特徴量およびタスク処理時間の情報を取得するステップである。特徴量は、上記したとおり、例えばトレースログに含まれる情報であり、例えば実行サイクル数やキャッシュのヒット率等が含まれる。
次いで、ステップS102が実行される。ステップS102は、学習すべき対象のタスクが以前にステップS102を実行した時点から遷移しているか否かを判定するステップである。タスクが遷移していればステップS102はYES判定となり、ステップS103に進む。
ステップS103は、ステップS101で取得した特徴量およびタスク処理時間を格納するメモリ60上の格納領域を変更するステップである。ステップS102がYES判定であれば、ステップS103において該当する格納領域に特徴量およびタスク処理時間が格納されるように、その格納先を変更する。すなわち、特徴量およびタスク処理時間は、実行されるタスク毎に分類されて所定の格納領域に格納されるようになっている。よって、ステップS102がNO判定であれば、ステップS103を介さずにフローが進行する。
ステップS102がNO判定か、あるいはステップS103を実行した後、ステップS104が実行される。ステップS104は、タスクごとに設定されたメモリ60上の格納領域に特徴量およびタスク処理時間を格納するステップである。ステップS104によりタスクごとに分類された特徴量およびタスク処理時間を学習データと称する。
以上のステップS101〜ステップS104を含むステップS100を経て、学習データが得られる。
次に、図4に示すように、タスク処理時間予測部80は、ステップS200を実行する。ステップS200は、機械学習部83が、特徴量とタスク処理時間との紐付けを機械学習アルゴリズムにより行うとともに、入力された特徴量に対してタスク処理時間を予測するステップであり、図6に示すフローに従う。図を参照して詳しく説明する。
図6に示すように、まずステップS201が実行される。ステップS201は、機械学習部83が学習データ取得部82から学習データを受け取り、タスクごとに学習データに含まれる特徴量およびタスク処理時間の情報を抽出するステップである。学習データは、ステップS100においてタスクごとに所定の格納領域に格納されているので、機械学習部83は、タスク処理時間の予測が必要なタスクに対して学習データを取得し、特徴量およびタスク処理時間の情報を抽出する。
次いで、ステップS202が実行される。ステップS202は、タスク処理時間に影響を与える特徴量を選択するステップである。機械学習部83は、特徴量とタスク処理時間とを紐付けて学習する機能とともに、入力される特徴量に対するタスク処理時間を与える関数の機能を有するのであり、特徴量が説明変数、タスク処理時間が目的変数となる。ステップS202は、特徴量のうち、説明変数と成り得る特徴量を選択するステップである。なお、特徴量が同一であってもタスクの処理時間が一定であるとは限らないため、機械学習部83における関数は全単射であるとは限らない。すなわち、特徴量に対してタスク処理時間にばらつきを生じることもあるし、ばらつき以上に明らかに異なる2つ以上のタスク処理時間が学習されることもある。これはタスク監視処理部85により監視される。
次いで、ステップS203が実行される。ステップS203は、タスクに対して特徴量が複数含まれる場合において、特徴量を統合するなどして次元を削減するステップである。具体的には、タスク処理時間と相関を有する多数の特徴量から、多変量解析により、タスク処理時間をもっともよく表す主成分を合成する操作であり、例えば主成分分析を採用することができる。ステップS203を経ることにより、学習に用いる変数の量を削減できるため、学習に係る負荷ならびにタスク処理時間の予測に係る負荷を軽減することができる。
次いで、ステップS204が実行される。ステップS204は、特徴量あるいは主成分分析により合成された説明変数に対応する、目的変数たるタスク処理時間を作成するステップである。
次いで、ステップS205が実行される。ステップS205は、機械学習アルゴリズムに基づいて、抽出された特徴量あるいは生成された説明変数と、目的変数たるタスク処理時間とを統計的に紐付けるステップである。また、ステップS205では、入力された特徴量に対して、機械学習により予測されたタスク処理時間を出力するステップでもある。機械学習アルゴリズムとしては、例えばk近似法、SVM(support vector machine)、決定木、ランダムフォレストなどを採用できる。ステップS205を経ることにより、特徴量(説明変数)とタスク処理時間(目的変数)とが対応付けされるとともに、入力された特徴量に対して、タスク処理時間を予測して出力する。
次に、図4に示すように、タスク処理時間予測部80は、ステップS300を実行する。ステップS300は、処理追加部84が予測されたタスク処理時間に応じて、CPU10やGPGPU30などのプロセッサにおける、タスクが実行可能な空き領域に処理を追加するステップであり、図7に示すフローに従う。図を参照して詳しく説明する。なお、ステップS300は、タスクの実行が要求されたことに対して処理を追加するステップであるから、タスクごとに実行されるフローである。
図7に示すように、まずステップS301が実行される。ステップS301は、処理追加部84が、所定のタスクにおいて、予測されたタスク処理時間の、予測の正答率が所定の閾値よりも高いが否かを判定するステップである。
正答率は、以下のように例えば計算される。すなわち、予測されたタスク処理時間と実際に実行されたときのタスク処理時間との差の絶対値が所定の許容値以下であるときを正答とし、差の絶対値が許容値より小さいときを誤答とする。正答の頻度(a)と誤答の頻度(b)の総計(a+b)に対する正答の頻度の割合として算出される。つまり、正答率Rは、R=a/(a+b)と定義される。正答率Rの計算は学習データの監視を担うステップS400で実行されるので、詳細は後述する。なお、正答率Rの更新はステップS300の後に実行されるステップS400で実行されるが、ステップS300で用いられる正答率Rは、過去に実行されたステップS400で計算された最新のデータが参照される。
ステップS301においては、正答率と比較する閾値を例えば90%としている。ステップS301では、実行されるべきタスクに紐付けられた正答率Rと、閾値である90%が比較されて、R>90%であればYES判定となる。R≦90%の場合にはNO判定となる。ステップS301がNO判定のときは、プロセッサの空き領域に処理を追加しても実行が間に合わない可能性があるため、処理の追加を行わない。
ステップS301がYES判定のとき、ステップS302に進む。ステップS302は、予測されたタスク処理時間が所定の時間以上か否かを判定するステップである。所定の時間は任意に設定されるものであるが、ステップS302では例えば10μsとされている。予測されたタスク処理時間が10μsより短い場合にはステップS302はNO判定となりステップS303に進み、「処理1」を空き領域のあるプロセッサに追加するよう指示する。タスク処理時間が10μsより短いと予測されたときには、プロセッサが比較的空いている状態であると想定できるので、「処理1」は比較的高負荷な処理を選択できる。ステップS302がYES判定の場合にはステップS304に進む。
ステップS304は、ステップS302と同様に、予測されたタスク処理時間が所定の時間以上か否かを判定するステップである。所定の時間は任意に設定されるものであるが、ステップS304では例えば20μsとされている。予測されたタスク処理時間が20μsより短い場合にはステップS304はNO判定となりステップS305に進み、「処理2」を空き領域のあるプロセッサに追加するよう指示する。「処理2」に利用できる時間は「処理1」よりも短くなると想定できるので、「処理2」は「処理1」よりも軽負荷な処理となる。ステップS304がYES判定の場合にはステップS306に進む。
ステップS306は、ステップS302およびステップS304と同様に、予測されたタスク処理時間が所定の時間以上か否かを判定するステップである。所定の時間は任意に設定されるものであるが、ステップS306では例えば30μsとされている。予測されたタスク処理時間が30μsより短い場合にはステップS306はNO判定となりステップS307に進み、「処理3」を空き領域のあるプロセッサに追加するよう指示する。「処理3」に利用できる時間は「処理2」よりも短くなると想定できるので、「処理3」は「処理2」よりも軽負荷な処理となる。ステップS306がYES判定の場合には、プロセッサの空き領域に処理を追加しても実行が間に合わない可能性があるため、処理追加部84は処理の追加を指示しない。
ここで、追加される処理1、処理2、処理3は、図9に示す「ADD TASK」に相当する。なお、上記した例では、タスク処理時間のクラス分類として、0μs−10μs、10μs−20μs、20μs−30μs、30μs以上、という4段階を例示したが、クラス分類の数はプロセッサや実行されるタスクの種類によって適宜設定できるものである。
次に、図4に示すように、タスク処理時間予測部80は、ステップS400を実行する。ステップS400は、予測したタスク処理時間の正答率を算出して学習データに反映させ、学習データにおける所定のタスクに対するタスク処理時間のばらつきを検出し、予測したタスク処理時間に基づいて投入した別の処理が実際に処理を完了できたか否かを検証するステップである。ステップS400は図8に示すフローに従う。図を参照して詳しく説明する。
図8に示すように、まずステップS401が実行される。ステップS401は、タスク監視処理部85が、監視部81から取得した実際のタスク処理時間と、機械学習部83により予測されたタスク処理時間とを比較して、その差異を検証するステップである。具体的には、あるタスクが実行された場合において、実際のタスク処理時間と予測されたタスク処理時間との差の絶対値(Δt)と、予め決められた許容値(T)と、を比較する。Δt≦Tであれば、予測値と実測値との差異が許容できる範囲にあることになり正答となる。正答の場合にはステップS402に進み、正答率がアップするように正答率が更新される。Δt>Tであれば、予測値が実測値から許容できない程度にずれていることになり誤答となる。誤答の場合にはステップS403に進み、正答率がダウンするように正答率が更新される。
次いで、ステップS404が実行される。ステップS404は、監視部81から取得した実際のタスク処理時間と、更新された正答率と、を学習データ取得部82に発出して学習データに反映させるステップである。
次いで、ステップS405が実行される。ステップS405は、学習データに含まれるタスク処理時間(目的変数)の統計的なばらつきを検証するステップである。統計的なばらつきを表す特性値としては、例えば分散や標準偏差などを採用できるが、いずれの特性値を採用するかは任意である。ここで、タスク処理時間のばらつきが所定の許容値よりも大きいときにはステップS406に進み、使用者に対してタスク処理時間のばらつきが大きい旨の報知を行う。
次いで、ステップS407が実行される。ステップS407は、追加した処理の終了時間が所定の閾値より大きいか否かを判定するステップである。ここで、所定の閾値とは、追加した処理の後に実行されるタスクが開始される時間であり、追加した処理の終了時間が所定の閾値より大きいとは、追加した処理が実際には実行しきれなかったことを示す(図9に示す最下段のような状態)。このような場合にはステップS408に進む。ステップS408は、プログラムカウンタをアイドル状態のタスクのアドレスに切り替えることによって追加処理を中断し、ステップS409に進んで正答率をリセットする。
一方、追加した処理の終了時間が所定の閾値以下とは、追加した処理が実際に実行できたことを示し(図9に示す中段のような状態)、ステップS407はNO判定となってステップS408およびステップS409を経ずにフローを継続する。
次に、本実施形態における電子制御装置100を採用することによる作用効果について説明する。
この電子制御装置100は、特徴量に基づいてタスク処理時間を学習させるので、類似したタスクであっても特性値に基づいたタスク処理時間を予測に用いることでより精度良くタスクの空きを予測することができる。そして、精度良く予測されたタスク処理時間に基づいてタスクの割り当てを決定することができるので、ヘテロジニアスマルチコアを採用したマイコンにおけるスループットを向上することができる。
また、演算処理装置(プロセッサ)において処理が実行されていない空き領域に、効率よく処理を割り当てることができるので、メモリアクセスの回数を抑制できるとともに処理待ちの時間を抑制できる。このため、電子制御装置としての電力消費量を抑制することができる。
とくに、本実施形態における電子制御装置100においては、タスク処理時間を予測するための特徴量について、主成分分析による次元の削減を行うので、学習に用いる変数の量を削減できる。このため、学習に係る負荷ならびにタスク処理時間の予測に係る負荷を軽減することができる。
さらに、本実施形態における電子制御装置100においては、予測されたタスク処理時間に対して、正答率を算出して学習データに反映している。予測されたタスク処理時間の正答率が低い場合には、プロセッサの空き領域に処理の追加を実行しても、処理が完了できない虞があり、処理の追加を行う処理自体が無駄な処理になる虞がある。これに対して、電子制御装置100は、正答率が比較的高いタスクにおいて処理の追加を実行するので、追加した処理の完遂についての信頼性を向上することができる。
さらに、本実施形態における電子制御装置100においては、収集された学習データにおけるタスク処理時間のばらつきを検証し、ばらつきが大きい場合には使用者に報知するようになっている。機械学習によって、特徴量とタスク処理時間との紐付けが出来ている場合でも、統計的なばらつきが大きいと、追加できる処理の見積もり(ランク分類)が困難になる場合がある。電子制御装置100は、この可能性を使用者に報知することができる。
さらに、本実施形態における電子制御装置100においては、追加した処理が、実際に処理しきれなかった場合には、正答率をリセットするようになっている。すなわち、タスク処理時間の予測に誤りがある場合には、正答率が意図せずに高く算出されている虞があるため、正答率をリセットすることで処理追加の精度の低下を抑制することができる。
(その他の実施形態)
この明細書および図面等における開示は、例示された実施形態に制限されない。開示は、例示された実施形態と、それらに基づく当業者による変形態様を包含する。例えば、開示は、実施形態において示された部品および/または要素の組み合わせに限定されない。開示は、多様な組み合わせによって実施可能である。開示は、実施形態に追加可能な追加的な部分をもつことができる。開示は、実施形態の部品および/または要素が省略されたものを包含する。開示は、ひとつの実施形態と他の実施形態との間における部品および/または要素の置き換え、または組み合わせを包含する。開示される技術的範囲は、実施形態の記載に限定されない。開示されるいくつかの技術的範囲は、請求の範囲の記載によって示され、さらに請求の範囲の記載と均等の意味及び範囲内での全ての変更を含むものと解されるべきである。
上記した実施形態では、機械学習部83が、特徴量に対して次元を削減するステップを実行する例について説明したが、次元の削減は必ずしも必要ではない。ただし、次元を削減することにより電子制御装置100の処理負荷が軽減されることは、上記したとおりである。また、主成分分析の方法についてはある一つの方法に限定するものではない。
また、処理追加部84が処理の追加に際して、正答率が所定の値よりも高いことを要求する例について説明したが、処理の追加は、正答率と関係なく行うことができる。ただし、正答率に基づいて処理の追加の有無を判断することで、追加した処理の完了可否の不確かさを軽減することができることは、上記したとおりである。
また、追加した処理が完遂できなかった場合に正答率をリセットする例を説明したが、正答率をリセットしなくても実質的なフローの継続は可能である。
10…CPU,20…PMU,30…GPGPU,40…キャッシュ,50…演算ユニット,60…メモリ,70…制御部,80…タスク処理時間予測部,81…監視部,82…学習データ取得部,83…機械学習部,84…処理追加部,85…タスク監視処理部

Claims (7)

  1. 複数の演算処理装置(10,30,50)を含み、入力信号に基づいて処理を実行し出力信号を出力する制御部(70)と、
    前記制御部が実行する処理におけるタスクごとに、該タスクを特徴付ける特徴量を抽出するとともに、前記特徴量に対応する実際のタスク処理時間を学習するタスク処理時間予測部(80)と、を備え、
    前記タスク処理時間予測部は、タスクを実行する際に、実行すべきタスクに紐づく前記特徴量に基づいて、前記特徴量に対応して学習された前記タスク処理時間を予測し、
    予測された前記タスク処理時間に応じて、前記演算処理装置におけるタスクが実行可能な空き領域に処理を追加する、電子制御装置。
  2. 前記タスク処理時間予測部は、前記タスクごとの前記特徴量および前記タスク処理時間を取得し、学習データとして統計的に記録する学習データ取得部(82)と、
    前記学習データに基づいて、所定の機械学習アルゴリズムによりタスクに対応する前記タスク処理時間を予測する機械学習部(83)と、
    前記機械学習部により予測された前記タスク処理時間に応じて、前記演算処理装置におけるタスクが実行可能な空き領域に処理を追加する処理追加部(84)と、を有する、請求項1に記載の電子制御装置。
  3. 前記機械学習部は、前記タスク処理時間に対する前記特徴量の主成分分析を実行して次元の削減する、請求項2に記載の電子制御装置。
  4. 前記タスク処理時間予測部は、タスク監視処理部(85)をさらに有し、
    前記タスク監視処理部は、前記機械学習部が予測した前記タスク処理時間と、実行された実際のタスク処理時間とを比較して予測の正答率を算出し、
    前記正答率が所定の閾値よりも高い場合において、前記処理追加部が前記演算処理装置におけるタスクが実行可能な空き領域に処理を追加する、請求項2または請求項3に記載の電子制御装置。
  5. 前記正答率は、予測された前記タスク処理時間と実際に実行されたときの前記タスク処理時間との差の絶対値が所定の許容値以下であるときを正答とし、前記差の絶対値が前記許容値より小さいときを誤答として、正答と誤答の総計に対する正答の数の割合として算出され、
    前記学習データは算出された前記正答率を含む、請求項4に記載の電子制御装置。
  6. 前記タスク監視処理部は、各タスクに対する前記機械学習部により予測された前記タスク処理時間のばらつきを算出し、
    前記ばらつきが、所定の許容範囲を超える場合に警告を発出する、請求項4または請求項5に記載の電子制御装置。
  7. 前記タスク監視処理部は、前記処理追加部により追加された処理に要した時間が所定の許容値を超える場合において、前記正答率をリセットする、請求項4〜6のいずれか1項に記載の電子制御装置。
JP2018004234A 2018-01-15 2018-01-15 電子制御装置 Active JP7106868B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018004234A JP7106868B2 (ja) 2018-01-15 2018-01-15 電子制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018004234A JP7106868B2 (ja) 2018-01-15 2018-01-15 電子制御装置

Publications (2)

Publication Number Publication Date
JP2019125093A true JP2019125093A (ja) 2019-07-25
JP7106868B2 JP7106868B2 (ja) 2022-07-27

Family

ID=67399382

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018004234A Active JP7106868B2 (ja) 2018-01-15 2018-01-15 電子制御装置

Country Status (1)

Country Link
JP (1) JP7106868B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021039645A (ja) * 2019-09-05 2021-03-11 Necプラットフォームズ株式会社 情報処理装置、データ処理方法及びデータ処理プログラム
JP7393847B2 (ja) 2019-10-25 2023-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション パイプラインにおけるタスクの並列度の動的な変更

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256064A (ja) * 2000-03-10 2001-09-21 Mitsubishi Electric Corp 複数周期実行タスクの最適化スケジューリング方式
JP2013130104A (ja) * 2011-12-21 2013-07-04 Toyota Motor Corp 内燃機関の制御装置
JP2014182606A (ja) * 2013-03-19 2014-09-29 Denso Corp 演算装置およびプログラム
JP2015108877A (ja) * 2013-12-03 2015-06-11 日本電気株式会社 予測時間分布生成装置、制御方法、及びプログラム
WO2017188419A1 (ja) * 2016-04-28 2017-11-02 日本電気株式会社 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001256064A (ja) * 2000-03-10 2001-09-21 Mitsubishi Electric Corp 複数周期実行タスクの最適化スケジューリング方式
JP2013130104A (ja) * 2011-12-21 2013-07-04 Toyota Motor Corp 内燃機関の制御装置
JP2014182606A (ja) * 2013-03-19 2014-09-29 Denso Corp 演算装置およびプログラム
JP2015108877A (ja) * 2013-12-03 2015-06-11 日本電気株式会社 予測時間分布生成装置、制御方法、及びプログラム
WO2017188419A1 (ja) * 2016-04-28 2017-11-02 日本電気株式会社 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021039645A (ja) * 2019-09-05 2021-03-11 Necプラットフォームズ株式会社 情報処理装置、データ処理方法及びデータ処理プログラム
JP7136460B2 (ja) 2019-09-05 2022-09-13 Necプラットフォームズ株式会社 情報処理装置、データ処理方法及びデータ処理プログラム
JP7393847B2 (ja) 2019-10-25 2023-12-07 インターナショナル・ビジネス・マシーンズ・コーポレーション パイプラインにおけるタスクの並列度の動的な変更

Also Published As

Publication number Publication date
JP7106868B2 (ja) 2022-07-27

Similar Documents

Publication Publication Date Title
US8731737B2 (en) Microcontroller having a computing unit and a logic circuit, and method for carrying out computations by a microcontroller for a regulation or a control in a vehicle
CN102859158B (zh) 用于计算控制用的输出参量的控制设备和方法
US11876731B2 (en) System and methods for sharing memory subsystem resources among datacenter applications
US20190361708A1 (en) Embedded scheduling of hardware resources for hardware acceleration
US20060161924A1 (en) Scheduling method, in particular context scheduling method, and device to be used with a scheduling method
CN105765541B (zh) 用于机动车的控制器
US8195885B2 (en) Electronic unit for saving state of task to be run in stack
CN108205469B (zh) 一种基于MapReduce的资源分配方法及服务器
US20220414503A1 (en) Slo-aware artificial intelligence inference scheduler for heterogeneous processors in edge platforms
KR102166650B1 (ko) 제어 장치의 작동 방법 및 모델 연산 유닛을 포함하는 제어 장치
US20100174886A1 (en) Multi-Core Processing Utilizing Prioritized Interrupts for Optimization
US20170026266A1 (en) Bandwidth estimation circuit, computer system, method for estimating and predicting the bandwidth and computer readable program product
CN115098412B (zh) 外设访问控制器、数据访问装置及对应方法、介质和芯片
CN103329102A (zh) 多处理器系统
US20090113439A1 (en) Method and Apparatus for Processing Data
US20180246767A1 (en) Optimized thread scheduling on processor hardware with performance-relevant shared hardware components
JP2019125093A (ja) 電子制御装置
JP2013228859A (ja) プラント制御装置
US9977417B2 (en) Method for optimizing utilization of programmable logic elements in control units for vehicles
CN116360990B (zh) 分布式计算任务合理性预判方法、系统、设备和存储介质
CN116414542A (zh) 任务调度方法、装置、设备及存储介质
US12001382B2 (en) Methods, apparatus, and articles of manufacture to generate command lists to be offloaded to accelerator circuitry
US8850386B2 (en) Method for estimating resource consumption in the generation of a control device program code
KR20230068709A (ko) 스케줄러, 스케줄러의 동작 방법 및 이를 포함한 전자 장치
JP2006215621A (ja) Dma制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201209

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211028

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211214

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20220419

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220602

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: 20220614

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220627

R151 Written notification of patent or utility model registration

Ref document number: 7106868

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151