JP7385989B2 - 演算制御装置 - Google Patents

演算制御装置 Download PDF

Info

Publication number
JP7385989B2
JP7385989B2 JP2018232407A JP2018232407A JP7385989B2 JP 7385989 B2 JP7385989 B2 JP 7385989B2 JP 2018232407 A JP2018232407 A JP 2018232407A JP 2018232407 A JP2018232407 A JP 2018232407A JP 7385989 B2 JP7385989 B2 JP 7385989B2
Authority
JP
Japan
Prior art keywords
task
subtasks
processing
subtask
parallelization
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
Application number
JP2018232407A
Other languages
English (en)
Other versions
JP2020095441A (ja
Inventor
辰也 堀口
祐 石郷岡
裕弘 小田
文雄 成沢
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.)
Hitachi Astemo Ltd
Original Assignee
Hitachi Astemo Ltd
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 Hitachi Astemo Ltd filed Critical Hitachi Astemo Ltd
Priority to JP2018232407A priority Critical patent/JP7385989B2/ja
Priority to DE112019005584.4T priority patent/DE112019005584T5/de
Priority to PCT/JP2019/046724 priority patent/WO2020121840A1/ja
Publication of JP2020095441A publication Critical patent/JP2020095441A/ja
Application granted granted Critical
Publication of JP7385989B2 publication Critical patent/JP7385989B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Devices For Executing Special Programs (AREA)

Description

本発明は、演算制御装置に関し、より詳しくはマルチコア又はメニーコアと言われる複数コアを有するプロセッサを制御する演算制御装置に関する。
近年、組込み用プロセッサにおける性能向上が進み、高負荷な演算処理の導入が自動車(特に自動運転)、ビッグデータ処理、創薬、遺伝子解析、産業機器等の分野において進んでいる。その結果、それらの分野における制御装置において求められる処理性能が増大している。このため、マルチコアもしくはメニーコアプロセッサなど複数コアを有するプロセッサを活用した制御装置(ECU: Electronic Control Unit)が採用され、その処理性能向上が求められている。
例えば自動車分野においては、高度な自動運転システムの実現に向け、自動運転を制御する上位の制御装置である自動運転ECUを筆頭に、制御装置の処理負荷の増大が課題となっている。このため、自動車分野においても、2コア、4コア、8コアといったマルチコアプロセッサの導入が開始されている。今後も更にコア数は増大し、コア数が例えば10以上のメニーコアプロセッサの利用開始も想定される。
一方で、同分野におけるソフトウェア設計においては、例えばモデルベースデザインからの自動ソースコード生成など、シングルコアプロセッサ向けの設計手法が依然用いられる場合がある。シングルコアプロセッサ向けの既存の設計手法のまま単純にマルチコアプロセッサやメニーコアプロセッサに移行するだけでは、今後の負荷増大トレンドにおける、これらプロセッサの性能メリットを活かすことが難しくなる。特許文献1ではこのような背景に対し、マルチコアプロセッサに対して複数のタスクを効率的に割り当てる(準最適なスケジューリングを提供する)例が開示されている。
一方で、特許文献1では、通常時は事前に規定されるスケジューリング方式に基づき各プロセッサコアへの処理を割り当てた静的なスケジューリングを用いるが、負荷が高い状況において、タスクを効率的に実行するための動的スケジューリングを行う例が示されている。自動車分野や産業機器分野においては、制御の安定性のため実行時間制約を保証することが強く求められるが、同文献については実行時間制約への言及はなく、仮に通常動作時(静的スケジューリングで動作する場合)には設計者により適切なスケジューリングが行われていたとしても、少なくとも動的にスケジューリングを行った際の実行時間制約の保証は困難である。特にマルチコアプロセッサにおいては、ある処理が別の処理の実行時間へ影響を与える場合がある。この場合、実行時間の制約を保証することが困難になり得る。このため、実行時間制約を満たすためには、複数のコア上で同時に演算を行った際の処理時間の変動に対応するための方法が必要となる。
特開2008-171153号公報
本発明の目的は、上述のような複数のコアを有するプロセッサを用いたシステムにおいて、複数のコア上で同時に異なる処理を行った際の処理時間の変動を低減することを可能にし、これによりシステムの挙動予測性を高め、実行時間制約の保証可能性を高めることを可能にした演算制御装置を提供することである。
本発明に係る演算制御装置は、複数のコアを有するプロセッサと、前記複数のコアに対し、タスクを割り当てるタスク割当部とを備える演算制御装置である。前記タスク割当部は、前記タスクを構成する複数のサブタスクを並列化処理の対象とすることが可能であるか否かを判断し、並列化処理が可能である場合には、所定の条件下で前記複数のサブタスクを前記複数のコアに割り当てるよう構成される。
本発明によれば、マルチコアプロセッサを用いる演算制御装置において、複数のコア上で同時に異なる処理を行った際の処理時間の変動を低減することを可能にし、これによりシステムの挙動予測性を高め、実行時間制約の保証可能性を高めることができる。
第1の実施の形態に係るマルチコアプロセッサの演算制御装置のうち、演算処理に関連する構成部分を示した概略ブロック図である。 第1の実施の形態における、演算制御装置1と、ソフトウェアコンポーネント(搭載機能)との関係を示す概略図である。 ソフトウェアコンポーネント(搭載機能)の依存関係の一例を説明する概略図である。 ソフトウェアコンポーネント(搭載機能)と、対応するタスクとの関係を示す表である。 演算制御装置1に割り当てられる搭載機能をモデルベース設計手法により表現した図である。 モデルベース設計時に演算制御装置1に割り当てられる搭載機能に対応するタスクを表す表である。 第1の実施の形態において、タスクの各々について付与される各種のパラメータの一例を説明する表である。 第1の実施の形態における、データ依存関係を示すタスクグラフの一例である。 第1の実施の形態において、タスクの各々に付与される優先度のパラメータの一例を示す表である。 第1の実施の形態において、タスクD内でのサブタスクの並列化を行わない場合のタイムチャートの一例である。 タスクDにおいて、並列化処理可能なサブマスクを並列化処理した場合におけるタスクグラフと、設定される平均実行時間との関係を示す表である。 第1の実施の形態において、タスクD内のサブタスクを並列化した場合におけるタイムチャートの一例である。 第1の実施の形態における、イベント駆動処理タスクHが発生したことに起因して時間制約違反が発生した場合におけるタイムチャートの一例である。 第1の実施の形態の変形例1における、タスクDの並列化と優先度設定方法を示す図である。 第1の実施の形態の変形例1における、タスク優先度パラメータの設定例を示すリストである。 第1の実施の形態の変形例2における動作を示すタイムチャートの一例である。 第2の実施の形態に係るマルチコアプロセッサの演算制御装置のうち、演算処理に関連する構成部分を示した概略ブロック図である。 第2の実施の形態において、タスクの各々について付与される各種のパラメータの一例を説明する表である。 第2の実施の形態における、デッドラインパラメータの設定例を示すリストである。
以下、添付図面を参照して本実施形態について説明する。添付図面では、機能的に同じ要素は同じ番号又は対応する番号で表示される場合もある。なお、添付図面は本開示の原理に則った実施形態と実装例を示しているが、これらは本開示の理解のためのものであり、決して本開示を限定的に解釈するために用いられるものではない。本明細書の記述は典型的な例示に過ぎず、本開示の特許請求の範囲又は適用例を如何なる意味においても限定するものではない。
本実施形態では、当業者が本開示を実施するのに十分詳細にその説明がなされているが、他の実装・形態も可能で、本開示の技術的思想の範囲と精神を逸脱することなく構成・構造の変更や多様な要素の置き換えが可能であることを理解する必要がある。従って、以降の記述をこれに限定して解釈してはならない。
[第1の実施の形態]
図1を参照して、第1の実施の形態に係る演算制御装置を説明する。以下では、コアの数が8個であるマルチコアプロセッサを制御する演算制御装置を例として説明するが、コアの個数は特定のものに限定されるものではない。例えば、コアが10個以上のメニーコアプロセッサを制御する演算制御装置にも、本開示の技術的思想の範囲と精神を逸脱することなく、同様の方式の採用が可能である。
図1は、第1の実施の形態に係るマルチコアプロセッサの演算制御装置のうち、演算処理に関連する構成部分を示した概略ブロック図である。演算制御装置1は、パラメータ付与部101と、マルチコアプロセッサ102と、タスク割当部103とを備える。
パラメータ付与部101は、車両を制御するために必要となるハードウェア及びソフトウェアに関する情報をパラメータとしてタスクに付与し、記憶部に記憶する機能を有する。ハードウェアに関するパラメータには、マルチコアプロセッサ102のマルチコア構成、バス配線情報、センサ(図示せず)のセンシング情報(センサ値)等が含まれる。
パラメータ付与部101に記憶されるパラメータは、タスク割当部103による割当を行う場合の判断指標ともなり得る。一例として、パラメータ付与部101は、タスク制御周期パラメータ記憶部1011と、タスク優先度パラメータ記憶部1012と、タスク依存関係パラメータ1013とを備える。タスク制御周期パラメータ記憶部1011は、マルチコアプロセッサ102により実行される各タスクの制御周期を規定するパラメータを記憶する。また、タスク優先度パラメータ記憶部1012は、各タスクが他のタスクとの関係で優先して処理(実行)されるべき度合を示す優先度を規定するパラメータを記憶する。
タスク依存関係パラメータ記憶部1013は、タスク間の依存関係を示す依存関係パラメータを記憶する。依存関係パラメータは、例えばあるタスクAで処理した結果を次のタスクBの入力として処理するため、タスクAの終了がタスクBの開始条件となるような関係を示す。
マルチコアプロセッサ102は、複数のコア1~8を有しており、各コア1~8はそれぞれ並列にタスク処理を実行可能に構成されている。一例として、マルチコアプロセッサ102は、性能の異なる2種類のコアを4コアずつ有することができる。ここでは、相対的に性能の高いコア1~4を高速動作コア1021、性能の低いコア5~8を低速動作コア1022と呼称する。性能の段階は2段階には限られず、3段階以上であってもよいし、全てのコアが同一の性能を有していてもよい。
タスク割当部103は、パラメータ付与部101から取得されたパラメータ(タスク制御周期、タスク優先度、タスク依存関係など)に基づき、各タスクをマルチコアプロセッサ102の各コアへ割り当てる。
このような演算制御装置1に対して要求される搭載機能は、いくつかの形式により与えられる。例えば、図2に示すように、各種機能1、2、3、4・・・が、ソフトウェアコンポーネントとしてC言語などのソースコードにて記載されて演算制御装置1に与えられる場合を考える。
この場合、同ソースコードに基づき、図3に示すように、各機能1、2、3、4・・・(ソフトウェアコンポーネント間)の依存関係が解読される。例えば、機能2は、機能1の実行が完了した後において実行が可能であり、機能3は機能2の実行が完了した後において実行が可能であることがソースコードに基づき解読される。
さらに、各機能1、2、3、4・・・をマルチコアプロセッサ102に割り当てるためのタスクが定義される。各機能1、2、3、4(ソフトウェアコンポーネント)とタスクとの関係の一例を図4に示す。
また異なる入力情報の例として、図5のようなモデルベース設計手法にて記述されたモデルが与えられた場合には、図6のように各機能と対応させる形でタスクが定義される。例えば、機能2、4中のサブ機能2-1、2-2、2-3、4-1、4-2に対しても、それぞれ対応するタスクが定義される。
タスクが定義されると、図7のテーブルに示すように、タスクの各々について、各種のパラメータが、例えばソフトウェアコンポーネントのソースコードに基づいて生成される。一例としては、図7に示すように、平均実行時間(高速コアを用いた場合)、各タスクに含まれるサブタスクの並列化の可否、及びタスク制御周期等のパラメータが生成される。このうちタスク制御周期のパラメータは、タスク制御周期パラメータ記憶部1011に記憶される。
なお、図7は、機能1~4とは別の、イベント駆動処理(割り込み処理)に対応するタスクHについても平均実行時間を計算し、パラメータを決定した場合について示している。
図8に、図7に示したタスクを実行する場合のタスクグラフの一例を示す。タスクグラフは、演算制御装置1により、タスク制御周期、タスク依存関係、その他のパラメータに従って生成される。各タスクは、同一のタスク制御周期を有するタスク毎に分類されるとともに、タスク依存関係に従って順序付けされる。この例では、30msの制御周期で動作するタスクA~Eについての1のタスクグラフが形成され、50msの制御周期で動作するタスクF、Gについて別のタスクグラフが形成されている。
図8に例示されるタスクグラフでは、各タスク間の矢印によりタスク間の依存関係が表現されている。この依存関係は、タスク依存関係パラメータ1013に記述される。このようなタスクグラフが形成されると、直列に並ぶ複数のタスクの組は、マルチプロセッサ102中の1つのコアにおいて実行され、異なる組のタスクは、異なるコアにおいて実行され得る。例えば、タスクA、B、Eは、コア1において実行され、タスクC、Dはコア2において実行され、タスクF、Gはコア3にて実行され得る。
また、タスクが定義されると、タスク毎に優先度がパラメータとして定義され、タスク優先度パラメータ記憶部1012に記憶される。図9は、各タスクについて定義された優先度の一例を示している。この図9の数字は、小さい数字であるほど優先度が高いことを意味している。例えば、タスクF、Gは優先度「15」であり、タスクA~Eの方がより高い優先度「10」を有する。タスクHは、これよりも更に高い優先度「5」を有する。この例では、タスク制御周期が短いタスクほど、高い優先度を与える、という制御ポリシーにより、優先度及びタスク制御周期が各タスクに与えられている。
上述のようにして決定されたタスク制御周期、依存関係、優先度に従って各タスクを実行した(演算を実行した)場合におけるタイムチャートの一例を図10に示す。この図10では、コア上でのタスク切り替えや、タスク分割に伴う時間オーバヘッドは発生しないものと仮定している。
タスク依存関係パラメータに従った依存関係に基づき、30msのタスク制御周期を有するタスクA~Eが実行される。このとき、タスクA、BとタスクC、Dとは、異なるコア1、2により並列に(同時に)実行され得る。しかし、A、C、D、Eはその順に実行されなければならず、このため、その処理がネック(クリティカルパス)となり、個々のタスクの実行時間次第では、30[ms]の周期制約を満たすことは出来ず、時間制約違反が生じてしまう。
そこで、本実施の形態では、クリティカルパス上にある複数のタスクA、C、D、Eのうち、更に複数のサブタスクに分割され、しかもそのサブタスクが並列化可能なタスクに関し、所定の条件下で並列化を実行することで、実行時間を短縮する。サブタスクへの分割は、タスク割当部103において、タスク制御周期パラメータ、タスク優先度パラメータ、タスク依存関係等に基づいて判断され、実行され得る。
図11に、タスクDを複数のサブタスクDpre、Dp0~Dp3、及びDpostに分割し、その一部のサブタスク(例えばサブタスクDp0~Dp3)を並列化した場合におけるタスクグラフと、決定される平均実行時間(高速コアの使用時)の例を示す。
1つのタスクDから生成された複数のサブタスクは、その中の少なくとも2以上が並列化され、異なるコアにおいて同時に実行可能とされることにより、タスクの総実行時間(平均)を短縮することができる。
好適には、タスクD中の複数のサブタスクを並列化するにあたり、複数のサブタスクを並列化前サブタスクDpre(21)、並列化対象サブタスクD(22)(Dp0~Dp3)、及び並列化後サブタスクDpost(23)に分割することができる。並列化前サブタスクDpre1は、タスクD中のサブタスク中で最初に実行されるサブタスクである。この並列化前サブタスクDpre1の実行後、複数の並列化対象サブタスクDが並列に、複数のコアにおいて実行され得る。また、並列化後サブタスクDpostは、並列化対象サブタスクDp1~Dp3の実行が全て終了した場合に実行されるタスクである。このように、並列化対象サブタスクDの前後に、並列化の対象外のサブタスクを置くことで、実行時間の予測が容易になるとともに、演算制御装置1での処理負荷も軽減することができる。
図11のように、1つのタスクDが複数のサブタスクに分割される場合、サブタスクの各々の平均実行時間(高速コアの使用時)の合計Ttotalは、元のタスクDの平均実行時間Td以下となるように設定する。前述のように、コア上でのタスク切替や、タスク分割に伴う時間オーバヘッドは仮定しないならば、平均実行時間の合計Ttotalは、元のタスクDの平均実行時間Tdと等しい値とすることができる(5×6=30ms)。なお、この新たに生成されたサブタスクDpre、Dp0~Dp3、Dpostの間の依存関係、及び平均実行時間は、パラメータ付与部101に記憶される。
図11のようにしてタスクDが複数のサブタスクに分割され且つ並列化処理された場合におけるタイムチャートの一例を、図12に示す。この例では、30msの制御周期を満足するため、並列化処理が可能なサブタスクDp0~Dp3が優先的に処理され、その前に並列化前サブタスクDpreがタスクCの実行終了後に処理を開始される。並列化処理の開始の際、コア1上でタスクBが実行中であれば、それを一度中断することもできる。これにより、4つのコア1~4の全てを実行可能状態とすることができ、それぞれにサブタスクDp0~Dp3を割り当て、4つのコア1~4において同時に処理を開始することができる。サブタスクDp0~Dp3に関しては、並列化前サブタスクDpreの終了後、同期信号を発生させることにより、処理の開始タイミングが揃うようにすることが好適である。サブタスクDp0~タスクDp3の実行が全て終了すると、その後に並列化後サブタスクDpostの実行を開始することができる。また、コア1では、中断していたタスクBの実行を再開することができる。
また、50msのタスク制御周期を有しコア3で実行中であるタスクFも、タスクBと同様に、並列化処理が開始可能となった段階で、一度処理を中断する。その後、並列化処理の対象とされたサブタスクDp2の実行をコア3において開始する。サブDp3の終了後、コア3では再び中断されていたタスクFの処理が再開される。
なお、タスクFもタスクDと同様に、サブタスクに分解して並列化処理が可能であれば(図7参照)並列化処理の対象としてもよいことは言うまでもない。ただし、タスクFは、タスクDとは異なり、タスク制御周期が長く、このため、優先度がタスクA~Eに比べ低い。このため、並列化処理を実行しなくても、所定のタスク制御周期の中で処理を終了することができる。このため、図12の例では、タスクFに関してはサブタスクの並列化処理は実行していない。このように、並列化処理が可能なタスクにおいても、定められたタスク制御周期の中で処理を完了することが可能であれば並列化処理を実行しないことを選択することが可能である。なお、タスクFをサブタスクFpに分解して並列化処理を実行する場合においては、サブタスクFpの優先度は、分割前のタスクFの優先度に比べ低く設定することができる。
<変形例1>
図13~図15は、第1の実施の形態の変形例1を示している。この変形例1は、並列化対象サブタスクDp0~Dp3のコア1~4での処理中に割込みタスクHが発生した場合を想定しており、図13はそのタイムチャートの一例を示している。
タスクHが発生した場合、タスクHは、例えばコア4において、サブタスクDp3の実行を中断して実行される。イベント駆動処理タスクであるタスクHは、タスク制御周期を有するタスクA~Gとは異なり、タスク制御周期とは無関係にイベントの発生に対応してランダムに生成される。このため、タスクHは、設計者が事前に実施タイミングを設計することは難しい。なお、発生ベースでのタスクHの実行を可能にするため、タスクHの優先度は、一般に他のタスクに比べ高く設定され得る。
しかし、並列化後サブタスクDpostは、並列化対象サブタスクDの完了後に実行可能となる。このため、タスクHの動作によりタスクDpostの実行開始時刻が遅れると、結果、タスクA~Eについての処理がタスク制御周期中に完了せず、時間制約違反が発生する虞がある(図13参照)。
このように、イベント駆動処理(割込み処理)など、優先度が並列化対象サブタスクに対して高く設定されるタスクが存在する場合、並列化対象サブタスクの一部の処理が中断され、実行時間制約を満たすことができない場合があり得る。
そこで、この第1の実施の形態の変形例1では、図14及び図15に示すように、全てのサブタスクに対し同一の優先度Pを与える代わりに、並列化対象サブタスクDの優先度を、並列化処理前サブタスク、及び並列化処理後タブタスクに比較して高い優先度Phighに変更する。この優先度Phighは、イベント駆動処理タスクHの優先度よりも高くされる。例えば、並列化前サブタスクDpre及び並列化後サブタスクDpostに対しては、その前後のタスクC、Eの優先度と同一の優先度(例:P=15)を付与する一方、並列化対象サブタスクDp0~Dp3に対しては、タスクC,E、更にはタスクHよりも高い優先度(例:Phigh=1)を付与する。
このように、並列化前サブタスクDpre及び並列化後サブタスクDpostに関しては、並列化前の優先度を引き継ぎ、他タスクA~C、E~H等との関係で優先度の調整を行ことができる。例えば、元のタスクDよりも高い優先度を有する他のタスクがあれば、そちらを優先して実行するよう、優先度を調整することはできる。ただし、並列化対象サブタスクDp0~Dp3については、他のタスクによる動作阻害が発生した際の実行ゆらぎが、直接的に実行時間制約の違反に繋がってしまう。そのため、並列化対象サブタスクDp0~Dp3のみについては可能な限り最大の優先度を与える。これにより、並列化対象サブタスクを含む一連のタスクについて、動作保証を行うことができる。
<変形例2>
図16は、第1の実施の形態の変形例2を示している。この変形例2は、変形例1と同様に、タスクA~Gのコア1~4での処理中に割込みタスクHが発生した例を示す。ただし、この変形例2は、割り込みタスクHが発生した場合において、コア5を割り込みタスクHの処理専用として利用するよう、タスク割当部103が構成されている。
第1の実施の形態を適用するにあたり、イベント駆動処理であるタスクHの動作を阻害することは不可能である場合は、タスクHについて別途専用にコアを定義することが可能である。この場合、タスク制御周期を有するタスクA~Gの処理のためのコア群(コア1~4)と、イベント駆動処理専用のコア群(コア5)の2種類が存在するマルチコアプロセッサ102を利用することができる。マルチコアプロセッサ102がこのような構成を取る場合、イベント駆動処理専用コア(コア5)を別途設けることにより、全体的なプロセッサ使用効率は低下することがあり得る。しかし、その一方で、マルチコアプロセッサ102上でのタスク挙動の予測性を高め、周期制約の充足を保証することが可能となる。
また、この変形例2では、タスク制御周期を有するタスクA~Gの動作が割り込みタスクHにより阻害されないことから、外部メモリやキャッシュ利用のタイミングが固定的となるため、キャッシュ利用効率向上による処理性能向上効果が期待できる。
なお、本実施の形態では簡単のため、並列化対象サブタスクが1つのケースで説明しており、その際には並列化対象サブタスクに最高の優先度を与えることが可能となる。しかし、実際には並列化すべきタスクが複数存在する場合が想定される。そのような場合においては、より時間制約の厳しい順に、最高優先度から優先度を順次下げて付与することが可能である。
また、上記の実施の形態では、コアの種類が1種類であるマルチコアプロセッサ102を前提として説明した。一つのチップ内に複数種類のコアを持つ、ヘテロジニアスなマルチコアもしくはメニーコアプロセッサにも、本実施の形態の方式は採用可能である。
タスク制御周期を有するタスクA~Gがイベント駆動処理であるタスクHに対して処理負荷が高いケースや、イベント駆動処理であるタスクHの出現頻度が低いケースなどでは、このようなヘテロジニアスなコアにおいて、より性能の高いコアへタスク制御周期を有するタスク割り当て、性能の低いコアへイベント駆動処理であるタスクHを割り当てることにより、更なる演算性能向上を図ることが可能となる。
[第2の実施の形態]
次に、第2の実施の形態に係る演算制御装置を、図17~図19を参照して説明する。
図17は、第2の実施の形態に係るマルチコアプロセッサの演算制御装置のうち、演算処理に関連する構成部分を示した概略ブロック図である。第1の実施の形態(図1)と同一の部分に関しては、図17において図1と同一の参照符号を付しているので、以下では重複する説明は省略する。
この第2の実施の形態では、パラメータ付与部101は、タスク優先度パラメータ記憶部1012は有しておらず、代わりに、各タスクが絶対に処理を完了すべき時刻である絶対デッドライン示すデッドラインパラメータを記憶するデッドラインパラメータ記憶部1014を備えている。すなわち、この第2の実施の形態では、あるタスクをサブタスクに分解して並列化処理を実行する場合において、そのサブタスクの優先度を高くするのではなく、その絶対デッドラインを変更し、パラメータとして記憶されるようにされている。並列化対象のサブタスクの絶対デッドラインが変更されることにより、絶対デッドラインが近いタスクが優先的に実行され、結果としてタスク実行の時間制約を遵守することが可能になる。なお、この例では、絶対期限である絶対デッドラインをパラメータとして生成・記憶しているが、絶対デッドラインに代えて、例えばタスク制御周期の開始時刻からの相対時刻をデッドラインとして生成・記憶することも可能である。
図18は、第2の実施の形態において、ソフトウェアコンポーネントのソースコードに基づいて生成された、タスクの各々についての各種パラメータを示すテーブルである。30msのタスク制御周期を有するタスクA~Eについて時間制約違反が生じてしまうと判断される場合には、並列化が可能であるタスクDについてサブタスク(Dpre、Dp0~Dp3、Dpost)への分割及び並列化が実行される。
図19に示すように、並列化対象サブタスクDp0~Dp3については、絶対デッドラインを元のタスクDの絶対デッドラインに比べ短くすることができる。ここでは、演算限界時間から逆算して絶対デッドラインを20msと定め、元の絶対デッドライン(30ms)よりも短くしている。デッドラインが長いままとされる場合、割込みタスクHが実行により、並列化対象サブタスクDp0~Dp3のデッドライン保証が困難となる。並列化対象サブタスクDp0~Dp3の絶対デッドラインをより短く設定することにより、タスクDp0~Dp3の実行優先度を高めることができる。
タスクHについては、第1の実施の形態の変形例2と同様に、タスク制御周期を有するタスクの処理用のコア(コア1~4)と、イベント駆動処理のタスクの処理専用のコア(コア5)の2種類が存在するマルチコアプロセッサを採用することも可能である。このような構成を取る場合、イベント駆動処理専用コアを別途設けることにより全体的なプロセッサ使用効率が低下するデメリットがあるが、マルチコアプロセッサ上でのタスク挙動の予測性を高め、周期制約の充足を保証することが可能となる。また周期処理タスクの動作が阻害されないことから、外部メモリやキャッシュ利用のタイミングが固定的となるため、キャッシュ利用効率向上による処理性能向上効果が期待できると同時に、動的なスケジューリングを行うことにより、第1の実施の形態における静的なスケジューリングよりもタスク設計工数の低減が可能となる。
以上、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。 上記各構成、機能、処理部、処理手段等は、それらの一部を、例えば集積回路を設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリ、ハードディスク、SSD(Solid State Drive)等の記録装置、ICカード、SDカード、DVD等の記録媒体に格納することができる。
また例えば、上記実施形態において、制御周期30msのタスク群と50msのタスク群、及びイベント駆動タスクの組合せを示しているが、本発明はこれに限定されるものではない。複数種類の制御周期の存在、異なるデッドライン時刻、イベント駆動処理の有無等に依らず、本発明は並列化により生成されるタスクの処理優先権を変更することで、処理時間の変動を低減することができ、実行時間制約の保証可能性を高めることができる。
1…演算制御装置、101…パラメータ付与部、1011…タスク制御周期パラメータ記憶部、1012…タスク優先度パラメータ記憶部、1013…タスク依存関係パラメータ記憶部、1014…デッドラインパラメータ記憶部、102…マルチコアプロセッサ、1021、1022…コア、103…タスク割当部。

Claims (8)

  1. 複数のコアを有するプロセッサと、
    前記複数のコアに対し、タスクを割り当てるタスク割当部と
    を備える演算制御装置であって、
    前記タスク割当部は、
    前記タスクを構成する複数のサブタスクを並列化処理の対象とすることが可能であるか否かを判断し、並列化処理が可能である場合には、所定の条件下で前記複数のサブタスクを前記複数のコアに割り当てるよう構成され、
    前記タスクにパラメータを付与するパラメータ付与部を更に備え、
    前記パラメータ付与部は、タスクが他のタスクに比べ優先的に処理されるべき度合を示す優先度をパラメータとして付与し、
    前記並列化処理の対象とされた前記複数のサブタスクに対し前記並列化処理の前の元の前記タスクの優先度より高い優先度を付与する
    ことを特徴とする演算制御装置。
  2. 前記タスク割当部は、
    前記タスクを、第1のサブタスクと、前記第1のサブタスクの後に実行され、前記並列化処理の対象となる前記複数のサブタスクと、前記複数のサブタスクの後に実行される第2のサブタスクと、に分割し、
    前記パラメータ付与部は、
    前記第1のサブタスク及び前記第2のサブタスクに対し、前記並列化処理の前の元の前記タスクと同じ優先度を付与し、
    前記並列化処理の対象とされた前記複数のサブタスクに対し、前記並列化処理の前の元の前記タスクの優先度より高い優先度を付与する、請求項1に記載の演算制御装置。
  3. 前記パラメータ付与部は、前記タスクが処理される周期を示すタスク制御周期、及び複数のタスクの依存関係を示すタスク依存関係をパラメータとして付与し、
    前記タスク割当部は、前記タスク制御周期及び前記タスク依存関係に基づいて、前記複数のコアに対し前記タスクを割り当てる、請求項1に記載の演算制御装置。
  4. 前記タスクは、前記タスクが処理される周期を示すタスク制御周期とは無関係に発生するイベント駆動処理タスクを含み、
    前記パラメータ付与部は、前記並列化処理の対象とされた前記複数のサブタスクに対し、前記イベント駆動処理タスクよりも高い優先度を付与する、請求項に記載の演算制御装置。
  5. 前記タスクは、前記タスクが処理される周期を示すタスク制御周期とは無関係に発生するイベント駆動処理タスクを含み、
    前記タスク割当部は、前記タスク制御周期を有するタスクを前記複数のコアのうちの第1のコアに割り当て、前記イベント駆動処理タスクを前記第1のコアとは異なる第2のコアに割り当てる、請求項1に記載の演算制御装置。
  6. 前記タスク割当部は、
    前記タスクを、第1のサブタスクと、前記第1のサブタスクの後に実行され、前記並列化処理の対象となる前記複数のサブタスクと、前記複数のサブタスクの後に実行される第2のサブタスクと、に分割し、
    前記パラメータ付与部は、
    前記並列化処理の対象とされた前記複数のサブタスクに対し、前記第1のサブタスク及び前記第2のサブタスクの優先度よりも高い優先度を付与する、請求項1に記載の演算制御装置。
  7. 前記パラメータ付与部は、前記タスクの処理が完了すべき時刻を示すデッドラインをパラメータとして付与し、
    前記並列化処理の対象とされた前記複数のサブタスクのデッドラインを変更する、請求項1に記載の演算制御装置。
  8. 前記プロセッサは、複数のコアの性能が互いに異なるヘテロジニアスプロセッサである、請求項1に記載の演算制御装置。
JP2018232407A 2018-12-12 2018-12-12 演算制御装置 Active JP7385989B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018232407A JP7385989B2 (ja) 2018-12-12 2018-12-12 演算制御装置
DE112019005584.4T DE112019005584T5 (de) 2018-12-12 2019-11-29 Arithmetiksteuervorrichtung
PCT/JP2019/046724 WO2020121840A1 (ja) 2018-12-12 2019-11-29 演算制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018232407A JP7385989B2 (ja) 2018-12-12 2018-12-12 演算制御装置

Publications (2)

Publication Number Publication Date
JP2020095441A JP2020095441A (ja) 2020-06-18
JP7385989B2 true JP7385989B2 (ja) 2023-11-24

Family

ID=71075338

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018232407A Active JP7385989B2 (ja) 2018-12-12 2018-12-12 演算制御装置

Country Status (3)

Country Link
JP (1) JP7385989B2 (ja)
DE (1) DE112019005584T5 (ja)
WO (1) WO2020121840A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7188693B2 (ja) 2018-09-12 2022-12-13 国立研究開発法人物質・材料研究機構 グラフェンを用いた電極、その製造方法およびそれを用いた蓄電デバイス
JP6988773B2 (ja) * 2018-11-15 2022-01-05 オムロン株式会社 制御システムおよび制御装置
CN112114956A (zh) * 2020-09-29 2020-12-22 中国银行股份有限公司 一种任务调度方法、装置和系统
KR102540724B1 (ko) * 2020-12-14 2023-06-05 현대오토에버 주식회사 멀티 코어 시스템에서의 태스크 실행 관리 방법, 그리고 이를 구현하기 위한 장치

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099352A (ja) 1998-09-18 2000-04-07 Fuji Xerox Co Ltd ジョブ処理装置
JP2009151645A (ja) 2007-12-21 2009-07-09 Mitsubishi Electric Corp 並列処理装置及びプログラム並列化装置
WO2014068950A1 (ja) 2012-10-31 2014-05-08 日本電気株式会社 データ処理システム、データ処理方法およびプログラム
JP2014160367A (ja) 2013-02-20 2014-09-04 Mitsubishi Electric Corp 演算処理装置
JP2015225396A (ja) 2014-05-26 2015-12-14 日立オートモティブシステムズ株式会社 車両制御装置
JP2016091137A (ja) 2014-10-31 2016-05-23 コニカミノルタ株式会社 画像形成装置、特定処理実行方法、およびコンピュータプログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008171153A (ja) 2007-01-10 2008-07-24 Fujitsu Ten Ltd タスク管理装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000099352A (ja) 1998-09-18 2000-04-07 Fuji Xerox Co Ltd ジョブ処理装置
JP2009151645A (ja) 2007-12-21 2009-07-09 Mitsubishi Electric Corp 並列処理装置及びプログラム並列化装置
WO2014068950A1 (ja) 2012-10-31 2014-05-08 日本電気株式会社 データ処理システム、データ処理方法およびプログラム
JP2014160367A (ja) 2013-02-20 2014-09-04 Mitsubishi Electric Corp 演算処理装置
JP2015225396A (ja) 2014-05-26 2015-12-14 日立オートモティブシステムズ株式会社 車両制御装置
JP2016091137A (ja) 2014-10-31 2016-05-23 コニカミノルタ株式会社 画像形成装置、特定処理実行方法、およびコンピュータプログラム

Also Published As

Publication number Publication date
WO2020121840A1 (ja) 2020-06-18
JP2020095441A (ja) 2020-06-18
DE112019005584T5 (de) 2021-10-28

Similar Documents

Publication Publication Date Title
JP7385989B2 (ja) 演算制御装置
JP5316718B1 (ja) マルチコア・プロセッサ
US20130346985A1 (en) Managing use of a field programmable gate array by multiple processes in an operating system
US9858115B2 (en) Task scheduling method for dispatching tasks based on computing power of different processor cores in heterogeneous multi-core processor system and related non-transitory computer readable medium
US20070118838A1 (en) Task execution controller, task execution control method, and program
JP6214469B2 (ja) 車両制御装置
WO2007020739A1 (ja) スケジューリング方法およびスケジューリング装置
US20130152100A1 (en) Method to guarantee real time processing of soft real-time operating system
JP2010009395A (ja) 情報処理装置、粒度調整方法およびプログラム
JP6464982B2 (ja) 並列化方法、並列化ツール、車載装置
JP6427055B2 (ja) 並列化コンパイル方法、及び並列化コンパイラ
WO2017020762A1 (en) Apparatus, method, and computer program for utilizing secondary threads to assist primary threads in performing application tasks
US9128757B2 (en) Method and lightweight mechanism for mixed-critical applications
US11645124B2 (en) Program execution control method and vehicle control device
JP6156379B2 (ja) スケジューリング装置、及び、スケジューリング方法
WO2021044810A1 (ja) コア割当装置及びコア割当方法
JP2013114538A (ja) 情報処理装置、情報処理方法及び制御プログラム
JP2020173622A (ja) 並列タスクスケジューリング方法
US20120137300A1 (en) Information Processor and Information Processing Method
WO2019188177A1 (ja) 情報処理装置
WO2019188175A1 (ja) デッドロック回避方法、デッドロック回避装置
JP2007122337A (ja) 演算装置
JP7107275B2 (ja) 並列化方法、半導体制御装置、及び車載制御装置
WO2022137838A1 (ja) プロセス割当制御装置、プロセス割当制御方法、及び、プロセス割当制御プログラムが格納された記録媒体
US20230236901A1 (en) Safe critical section operations for virtual machines with virtual central processing unit overcommit

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211018

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230302

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230606

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230725

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231113

R150 Certificate of patent or registration of utility model

Ref document number: 7385989

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150