(57)【要約】【課題】複数の演算装置を備える車両制御装置において、実効負荷が増大することを抑制しつつ、各演算装置に対して割り当てるタスクを変更する。【解決手段】本発明に係る車両制御装置は、各演算装置が実行すべきタスクを定義するタスクテーブルを備え、車両制御装置が起動または終了するとき前記タスクテーブルを更新する。【選択図】図４
2018067135.tif 000002
【特許請求の範囲】
【請求項１】
車両の動作を制御する車両制御装置であって、
前記車両の動作を制御する制御タスクを実行すべき演算装置を定義するタスクテーブルを格納する記憶部、
前記タスクテーブルの定義にしたがって前記制御タスクを実行する第１および第２演算装置、
前記車両制御装置が起動または終了するとき前記タスクテーブルを更新する更新部、
を備えることを特徴とする車両制御装置。
【請求項２】
前記車両制御装置はさらに、前記第１および第２演算装置が前記制御タスクを実行するために要した最悪処理負荷を計測する処理負荷計測部を備え、
前記更新部は、前記処理負荷計測部が計測した最悪処理負荷に基づいて、前記第１および第２演算装置の合計処理負荷が平準化されるように、前記タスクテーブルを更新する
ことを特徴とする請求項１記載の車両制御装置。
【請求項３】
前記タスクテーブルは、前記第１および第２演算装置のうちいずれが前記制御タスクを実行すべきかを定義しており、
前記第１および第２演算装置は、前記タスクテーブルを参照することにより、実行すべき前記制御タスクを特定するとともに、その特定した前記制御タスクを実行する
ことを特徴とする請求項１記載の車両制御装置。
【請求項４】
前記タスクテーブルは、前記第１演算装置が実行すべき前記制御タスクを定義する第１サブテーブルと、前記第２演算装置が実行すべき前記制御タスクを定義する第２サブテーブルと、を含んでおり、
前記更新部は、前記第１演算装置が実行すべき前記制御タスクのみを前記第１サブテーブルに対して記録するとともに、前記第２演算装置が実行すべき前記制御タスクのみを前記第２サブテーブルに対して記録し、
前記第１演算装置は、前記第１サブテーブルが定義している前記制御タスクを実行し、
前記第２演算装置は、前記第２サブテーブルが定義している前記制御タスクを実行する
ことを特徴とする請求項１記載の車両制御装置。
【請求項５】
前記タスクテーブルは、前記第１および第２演算装置のうちいずれが前記制御タスクを実行すべきかが固定されている固定タスクと、固定されていない再配置可能タスクとを定義しており、
前記更新部は、前記タスクテーブルのうち前記再配置可能タスクを定義している部分のみを更新する
ことを特徴とする請求項１記載の車両制御装置。
【請求項６】
前記タスクテーブルは、前記制御タスクを実行する際に要する時間として許容される範囲を指定する許容実行時間を定義しており、
前記更新部は、前記第１および第２演算装置が更新後の前記タスクテーブルにしたがって前記制御タスクを実行したとき前記許容実行時間を満たすことができるように、前記タスクテーブルを更新する
ことを特徴とする請求項１記載の車両制御装置。
【請求項７】
前記タスクテーブルは、前記制御タスクを実行すべき順序を定義しており、
前記更新部は、前記第１および第２演算装置が更新後の前記タスクテーブルにしたがって前記制御タスクを実行したとき前記順序を満たすことができるように、前記タスクテーブルを更新する
ことを特徴とする請求項１記載の車両制御装置。
【請求項８】
前記処理負荷計測部は、前記最悪処理負荷を計測した結果を記述した計測データを、前記車両制御装置の外部に設置された外部記憶装置に対して書き込み、
前記更新部は、前記外部記憶装置から前記計測データを取得し、その取得した計測データに基づいて前記タスクテーブルを更新する
ことを特徴とする請求項２記載の車両制御装置。
【請求項９】
前記車両制御装置はさらに、前記タスクテーブルの定義を指定するデータを受け取るタスクテーブル入力部を備え、
前記更新部は、前記タスクテーブル入力部が受け取ったデータにしたがって、前記タスクテーブルを更新する
ことを特徴とする請求項１記載の車両制御装置。
【請求項１０】
前記記憶部は、複数の前記タスクテーブルを格納し、
前記車両制御装置はさらに、各前記タスクテーブルの定義のうちいずれを採用すべきかを指定するデータを受け取るタスクテーブル指定部を備え、
前記第１および第２演算装置は、前記タスクテーブル指定部が受け取ったデータが指定する前記タスクテーブルの定義にしたがって、前記制御タスクを実行する
ことを特徴とする請求項１記載の車両制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両制御装置に関するものである。
【背景技術】
【０００２】
現在、マルチコアマイコンを搭載した車両制御装置（Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）の開発が盛んである。現状のマルチコアＥＣＵは、各コアが実行すべきタスクをあらかじめ固定的に割り当てるように設計することが基本である。パソコンなどのようにリアルタイム性の低い製品においては、ソフトウェアの実行中（ＥＣＵが完全に起動した後）にタスク割り当てを動的に変更している。しかし例えば車両制御装置のようにリアルタイム性の高い製品においては、タスクを動的に割り当てることは実行負荷の観点から難しい。
【０００３】
下記特許文献１における車両制御装置は、タスク処理順序の組み合わせパターンをあらかじめタスクテーブルとして用意しておき、その組み合わせパターンを切り替えることによって、状況に応じてタスクを動的に割り当てている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１９９１８０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１記載の方法においては、タスク割当をあらかじめ設計された組み合わせパターンから選択することしかできない。今後タスク数・コア数ともに増えた場合、その組み合わせ数は指数的に増えていくので、事前に設計者が全ての組み合わせを評価して適切な組み合わせパターンを設計することは困難である。他方で車両制御装置のようにリアルタイム性の高い製品においては、タスクスケジューリング機能の処理負荷は許容できない場合が多いので、タスク割当を動的に変更することは困難である。
【０００６】
本発明は、上記のような課題を解決するためになされたものであり、複数の演算装置を備える車両制御装置において、実行負荷が増大することを抑制しつつ、各演算装置に対して割り当てるタスクを変更することを目的とする。
【課題を解決するための手段】
【０００７】
本発明に係る車両制御装置は、各演算装置が実行すべきタスクを定義するタスクテーブルを備え、車両制御装置が起動または終了するとき前記タスクテーブルを更新する。
【発明の効果】
【０００８】
本発明に係る車両制御装置によれば、演算負荷が増大することを抑制しつつ、各演算装置が実行すべきタスクの割り当てを最適化することができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態１に係る車両制御装置を搭載した車両１の構成図である。
【図２】車両制御システム２のＨ／Ｗ（Ｈａｒｄｗａｒｅ）構成例である。
【図３】ＥＣＵ２２の内部構成を示すブロック図である。
【図４】プロセッサ２２１が実行する制御プログラムのモジュール構成を示す図である。
【図５】タスクテーブル２２７２の構成例を示す図である。
【図６】タスクテーブル２２７２の別構成例を示す図である。
【図７】ＥＣＵ２２が起動するときの動作手順を説明するフローチャートである。
【図８】ＥＣＵ２２が終了するときの動作手順を説明するフローチャートである。
【図９】実施形態２におけるタスクテーブル２２７２の例である。
【図１０】実施形態３におけるタスクテーブル２２７２の例である。
【図１１】実施形態４に係るＥＣＵ２２のモジュール構成図である。
【図１２】実施形態５に係るＥＣＵ２２のモジュール構成図である。
【発明を実施するための形態】
【００１０】
＜実施の形態１＞
図１は、本発明の実施形態１に係る車両制御装置を搭載した車両１の構成図である。車両１は車両制御装置によって電子的に制御される車両であり、車両制御システム２、通信装置３、車両制御システム４、駆動装置５、認識装置６、出力装置７、入力装置８、通知装置９を備える。
【００１１】
車両制御システム２は、車両１が備える各部を制御するシステムであり、例えば車載ネットワーク（ＣＡＮ：Ｃｏｎｔｒｏｌｌｅｒ  Ａｒｅａ  Ｎｅｔｗｏｒｋ、ＣＡＮＦＤ：ＣＡＮ  ｗｉｔｈ  Ｆｌｅｘｉｂｌｅ  Ｄａｔａ−ｒａｔｅ、Ｅｔｈｅｒｎｅｔ（登録商標）、など）とコントローラ（ＥＣＵ：Ｅｌｅｃｔｒｏｎｉｃ  Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）により構成される。車両制御システム４は、車両制御システム２とは異なる車載ネットワーク上に構成されたシステムである。
【００１２】
通信装置３は、車両制御システム２の外部と無線通信（例えば携帯電話の通信、無線ＬＡＮ、ＷＡＮ、などを使用した通信）し、外界（インフラ、他車）の情報または自車に関する情報を取得・送信する。通信装置３はさらに、診断端子（ＯＢＤ）、Ｅｔｈｅｒｎｅｔ端子、外部記録媒体（例えばＵＳＢメモリ、ＳＤカード、等）端子などを有し、車両制御システム２と有線接続することにより通信する。
【００１３】
駆動装置５は、車両制御システム２による制御にしたがって、車両運動を制御する機械および電気装置（例えばエンジン、トランスミッション、ホイール、ブレーキ、操舵装置、など）を駆動するアクチュエータなどの装置である。
【００１４】
認識装置６は、（ａ）外界から入力される情報を取得して外界認識情報を生成する、カメラ、レーダ、ＬＩＤＡＲ、超音波センサなどの外界センサ、（ｂ）車両１の状態（運動状態、位置情報、等）を認識する力学系センサ（加速度、車輪速度、ＧＰＳ：Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）、などにより構成される。
【００１５】
出力装置７は、車両制御システム２と有線または無線で接続され、車両制御システム２から送出されるデータを受信し、メッセージ情報（例えば映像、音）など必要な情報を表示または出力する、液晶ディスプレイ、警告灯、スピーカなどのデバイスである。入力装置８は、ユーザが車両制御システム２に対して、操作の意図や指示を入力する入力信号を生成するための、例えばステアリング、ペダル、ボタン、レバー、タッチパネル、などデバイスである。通知装置９は、車両１が外界に対して車両の状態などを通知するための、ランプ、ＬＥＤ、スピーカなどのデバイスである。
【００１６】
図２は、車両制御システム２のＨ／Ｗ（Ｈａｒｄｗａｒｅ）構成例である。ネットワークリンク２１は、各制御装置を接続する通信ネットワークであり、例えばＣＡＮバスなどによって構成される。ＥＣＵ２２は、ネットワークリンク２１、駆動装置５、認識装置６などに接続されている。ＥＣＵ２２は、駆動装置５や認識装置６を制御し、ネットワークリンク２１を介してデータを送受信する。ゲートウェイ（ＧＷ）２３は、ネットワークリンク２１間でデータを中継する。
【００１７】
図３は、ＥＣＵ２２の内部構成を示すブロック図である。プロセッサ２２１は、キャッシュやレジスタなどの記憶素子を持ち、制御プログラムを実行することにより車両１の各機能部を制御する。プロセッサ２２１は、１以上のプロセッサコアを備える。Ｉ／Ｏ２２２は、ネットワークリンク２１、駆動装置５、認識装置６などとの間でデータを送受信する。タイマ２２３は、図示しないクロックなどを使用して、時刻を管理する。ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２２４は、制御プログラムなどの不揮発性データを保存する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２２５は、揮発性データを保存する。内部バス２２６は、ＥＣＵ２２内部における通信のために用いられる。データフラッシュ２２７は、プロセッサ２２１が制御プログラムを実行するとき用いるデータを格納する記憶装置である。
【００１８】
図４は、プロセッサ２２１が実行する制御プログラムのモジュール構成を示す図である。制御プログラムは、タスク実行部２２１１、処理負荷計測部２２１２、タスクテーブル更新部２２１３を備える。
【００１９】
タスク実行部２２１１は、タスクを実行する。ここでいうタスクは、制御プログラムが実施する制御演算をある程度まとまった単位に分割した処理である。タスク実行部２２１１は、各タスクを例えば周期的に繰り返し実行し、またはセンサ入力やユーザ操作などのイベントを契機として実行する。各タスクには優先度が割り当てられており、同じプロセッサコアにおいて複数のタスクが同時に実行可能となった場合、プロセッサコアは優先度が最も高いタスクを実行する。
【００２０】
処理負荷計測部２２１２は、タスク実行部２２１１がタスクを実行する際の処理負荷を計測してその結果を計測データ２２７１としてデータフラッシュ２２７に格納する。ここでいう処理負荷は、例えば単位時間当たりのタスク実行時間である。１秒間のうちタスクを実行しているのが５００ミリ秒であれば、処理負荷は５０パーセントである。処理負荷計測部２２１２は、タスク実行部２２１１がタスクを１回実行するごとに処理負荷を計測する。
【００２１】
タスクテーブル更新部２２１３は、計測データ２２７１を取得し、処理負荷がプロセッサコア間で平準化されるように、タスクテーブル２２７２を更新する。タスクテーブル２２７２は、各プロセッサコアが実行すべきタスクを定義するデータテーブルである。タスクテーブル２２７２の具体例は後述する。タスクテーブル更新部２２１３は、ＥＣＵ２２が起動するときまたは終了するときに、タスクテーブル２２７２を更新する。起動時と終了時の詳細については後述する。
【００２２】
タスクテーブル更新部２２１３は、各プロセッサコアの処理負荷間の差分が閾値を超えている場合は、タスクテーブル２２７２を更新すべきであると判断することができる。この場合、各プロセッサコアの処理負荷の差分が閾値以下になるように（望ましくは最小になるように）、タスクテーブル２２７２を更新すればよい。閾値を超えていない場合は、タスクテーブル２２７２を更新する必要はない。
【００２３】
図５は、タスクテーブル２２７２の構成例を示す図である。タスクテーブル２２７２は、各タスクを実行すべきプロセッサコアを指定するデータフィールドを有する。図５においては、プロセッサコア“コア１”がタスク“Ｐｒｅ−ＢＳＷＴａｓｋ１０ｍｓｅｃ（）”を実行することが定義されている。タスクテーブル２２７２はさらに、各タスクの優先度や、各タスクを実行するプロセッサコアを変更できるか否か（タスク割当が固定されているか、それとも再配置可能であるか）についても、併せて定義してもよい。タスクテーブル更新部２２１３は、実行するプロセッサコアが固定されているタスクについては、タスクテーブル２２７２の当該箇所を更新しないようにする。
【００２４】
図６は、タスクテーブル２２７２の別構成例を示す図である。ＥＣＵ２２は、プロセッサコアごとにタスクテーブル２２７２を備えることもできる。この場合、各タスクテーブル２２７２は各プロセッサコアが実行すべきタスクを定義する。図６に示す例においては、１番目のタスクテーブル２２７２はコア１が実行すべきタスクのみを定義し、２番目のタスクテーブル２２７２はコア２が実行すべきタスクのみを定義する。
【００２５】
タスクテーブル２２７２が図５と図６いずれの構成であっても、タスクテーブル更新部２２１３は、各プロセッサコアが実行すべきタスクをタスクテーブル２２７２に記録することにより、タスクテーブル２２７２を更新する。
【００２６】
図７は、ＥＣＵ２２が起動するときの動作手順を説明するフローチャートである。本フローチャートは、車両１の例えばイグニッションスイッチがＯＮされることにより車両１が起動すると開始される（Ｓ７００）。以下図７の各ステップについて説明する。
【００２７】
（図７：ステップＳ７０１〜Ｓ７０２）
プロセッサ２２１は、ＲＯＭ２２４から制御プログラムを読み出し、ＲＡＭ２２５上に展開する（Ｓ７０１）。プロセッサ２２１は、制御プログラムを実行することにより、初期化処理を実施する（Ｓ７０２）。初期化処理は、制御プログラムの一部として実装することができる。
【００２８】
（図７：ステップＳ７０３）
プロセッサ２２１は、ＥＣＵ２２が通常モードとして起動されたか、それともメンテナンスモードとして起動されたかを判断する。メンテナンスモードで起動された場合はステップＳ７０４〜Ｓ７０６を実行する。通常モードで起動された場合はステップＳ７０７〜Ｓ７０９を実行する。いずれのモードで起動されたかは、例えば通信装置３からメンテナンスモードで起動するよう指示する信号が入力されたか否かにより判断することができる。
【００２９】
（図７：ステップＳ７０４〜Ｓ７０６）
プロセッサ２２１は、ＥＣＵ２２のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を初期化する（Ｓ７０４）。プロセッサ２２１は、制御プログラムが定義するアプリケーションを初期化する（Ｓ７０５）。プロセッサ２２１は、制御プログラムが定義する周期処理を開始する（Ｓ７０６）。
【００３０】
（図７：ステップＳ７０７〜Ｓ７０９）
プロセッサ２２１は、ＥＣＵ２２のＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）を初期化する（Ｓ７０７）。プロセッサ２２１は、制御プログラムが定義するアプリケーションを初期化する（Ｓ７０８）。プロセッサ２２１は、通信装置３を介してメンテナンスコマンドなどの外部入力が入力されるのを待機する（Ｓ７０９）。
【００３１】
タスクテーブル更新部２２１３は、ステップＳ７０１が開始してからステップＳ７０４（またはＳ７０７）が完了するまでのいずれかの時点（すなわちＥＣＵ２２が起動するときの起動処理）において、タスクテーブル２２７２を更新する。これにより、ＥＣＵ２２の制御処理が開始する前の時点でタスク割当をすることになるので、制御処理のリアルタイム性に影響を与えることなくタスクを再配置することができる。
【００３２】
図８は、ＥＣＵ２２が終了するときの動作手順を説明するフローチャートである。本フローチャートは、ＥＣＵ２２が終了する条件が成立した（例えば車両１のイグニッションスイッチがＯＦＦされたとき）ことを契機として開始される（Ｓ８００）。プロセッサ２２１は、アクチュエータを開始位置に戻し制御プログラムを終了するなどの終了処理を実施するとともに、次回起動時に読み込むためのデータをデータフラッシュ２２７に退避する（Ｓ８０１）。プロセッサ２２１はＯＳを終了させ（Ｓ８０２）、ＥＣＵ２２の電源をＯＦＦする（Ｓ８０３）。
【００３３】
タスクテーブル更新部２２１３は、ステップＳ８０１が開始してからステップＳ８０３が完了するまでのいずれかの時点（すなわちＥＣＵ２２が終了するときの終了処理）において、タスクテーブル２２７２を更新する。これにより、ＥＣＵ２２の制御処理が終了した後の時点でタスク割当をすることになるので、制御処理のリアルタイム性に影響を与えることなくタスクを再配置することができる。タスクテーブル更新部２２１３は、ＥＣＵ２２が起動するときと終了するときいずれか一方のみにおいてタスクテーブル２２７２を更新してもよいし、双方において更新してもよい。
【００３４】
タスクテーブル２２７２がタスク割当の固定／再配置可能について併せて定義している場合、その定義にしたがってタスク割当を更新することにより、タスク割当の変更にともなって誤動作が生じる可能性を抑制することができる。さらに優先度を併せて定義している場合、その優先度を考慮してタスク割当を更新することができる。
【００３５】
＜実施の形態２＞
図９は、本発明の実施形態２におけるタスクテーブル２２７２の例である。ここでは図６と同様にプロセッサコアごとにタスクテーブル２２７２を設けた場合の例を示した。ＥＣＵ２２の構成は実施形態１と同様なので、以下ではタスクテーブル２２７２に関する差異点について主に説明する。
【００３６】
本実施形態２におけるタスクテーブル２２７２は、タスクの属性として、実行時間制約について定義している。タスクテーブル更新部２２１３は、実行時間制約が満たされるように、各プロセッサコアに対してタスクを割り当てる。実行時間制約の例として、以下のようなものが挙げられる。
【００３７】
最大処理時間制約（図９の１行目）は、タスク実行部２２１１がタスクを実行開始してから完了するまでに要する時間として許容することができる最大時間である。最大処理時間制約は、優先度の高い他のタスクが繰り返されることによって、設計意図以上の処理時間がかかってしまうことを防止するために利用することができる。
【００３８】
最小処理時間制約（図９の１行目）は、タスク実行部２２１１がタスクを実行開始してから完了するまでに要する時間として許容することができる最小時間である。例えばタスクが途中終了することにより本来よりも短い時間で終了した場合、最小処理時間制約を満たさない可能性がある。
【００３９】
起動開始時間制約（図９の２行目）は、複数のタスクが連続して実行される場合、前のタスクが終了してから次のタスクが開始するまでのインターバルとして許容される最大時間である。例えば、割込処理によってタスク切替機能が起動した場合、前のタスクが終了した後に次のタスクが即座に起動せず、起動開始時間制約を満たさないことがある。
【００４０】
タスクテーブル更新部２２１３は、例えば以下のような手順により、タスクテーブル２２７２を更新することができる。タスクテーブル更新部２２１３は、各プロセッサコアの処理負荷が最も平準化されるタスク割当を求め、そのタスク割当において各タスクの実行時間制約が満たされるか否かを判定する。このとき、プロセッサコア間の通信に係る処理負荷をあらかじめ保持しておいて、これを加味した上で制約が満たされるか否かを判定してもよい。実行時間制約が満たされない場合は、次善のタスク割当について同様に判定することを繰り返す。実行時間制約が全て満たされるタスク割当が得られた時点で、そのタスク割当をタスクテーブル２２７２に対して書き込む。
【００４１】
本実施形態２に係るＥＣＵ２２は、タスクテーブル２２７２が定義している実行時間制約を満たすようにタスク割当を変更するので、実行時間制約を守れず制御が不安定になることを防止できる。特にエンジンやブレーキのようなリアルタイム性が求められる制御装置において、時間制約を満たしつつプロセッサコアの処理負荷を平準化することができる。
【００４２】
＜実施の形態３＞
図１０は、本発明の実施形態３におけるタスクテーブル２２７２の例である。ここでは図６と同様にプロセッサコアごとにタスクテーブル２２７２を設けた場合の例を示した。ＥＣＵ２２の構成は実施形態１と同様なので、以下ではタスクテーブル２２７２に関する差異点について主に説明する。
【００４３】
複数のタスクが所定の順序で実行されることにより、１つの制御機能が実装されている場合がある。このようなタスクはその実行順序が変更されると制御機能として意味をなさないので、タスク割当を変更する際にその実行順序を維持する必要がある。そこで本実施形態３において、タスクの実行順序があらかじめ固定されている場合は、その実行順序を制約条件としてタスクテーブル２２７２内に定義することとした。
【００４４】
図１０に示す例においては、燃料噴射を制御する機能が、タスクＡ＝＞タスクＢ＝＞タスクＣの順序で定義されている。これらタスクの実行順序を維持するためには、同一のプロセッサコアに対してこれらタスクをまとめて割り当てることが望ましい。併せて、タスクＡを開始してからタスクＣを完了するまでの最大処理時間制約も定義している。タスクテーブル更新部２２１３は実施形態２で説明した手順により、制約条件が満たされるタスク割当のなかで処理負荷が最も平準化されるものを求めることができる。
【００４５】
本実施形態３に係るＥＣＵ２２は、あらかじめ制御機能ごとに定義されたタスク実行順序を保ちつつタスク割当を変更するので、タスク割当の全組み合わせを探索することなく、処理負荷を平準化するとともに実行順序制約を維持することができる。
【００４６】
＜実施の形態４＞
図１１は、本発明の実施形態４に係るＥＣＵ２２のモジュール構成図である。本実施形態４において、処理負荷計測部２２１２は計測データ２２７１をＥＣＵ２２の外部に設置された外部記憶装置に格納する。その他構成は実施形態１と同様であるので、以下では外部記憶装置に関する差異点について説明する。
【００４７】
外部記憶装置は、車両制御システム２の内部に設置してもよいし、車両１の外部に設置してもよい。いずれの場合であっても、複数のＥＣＵ２２がそれぞれ外部記憶装置に対してアクセスできることが望ましい。これにより、複数のＥＣＵ２２それぞれの処理負荷を計測した結果を用いて、タスク割当を最適化することができる。
【００４８】
＜実施の形態５＞
図１２は、本発明の実施形態５に係るＥＣＵ２２のモジュール構成図である。本実施形態５において、ＥＣＵ２２は実施形態１で説明した構成に加えて、タスクテーブル入力部２２１４とタスクテーブル指定部２２１５を備える。その他構成は実施形態１と同様であるので、以下では差異点を中心に説明する。
【００４９】
タスクテーブル入力部２２１４は、例えばユーザが記述したタスクテーブルを受け取り、これを仮タスクテーブル２２７３としてデータフラッシュ２２７に格納する。ユーザは例えば通信装置３を介してタスクテーブルを入力することもできるし、車両制御システム２が備える車載ネットワークを経由してネットワーク送信によりタスクテーブルを入力することもできる。その他適当な手段を用いてもよい。ユーザは仮タスクテーブル２２７３を複数入力し、それぞれ保存しておくことができる。
【００５０】
タスクテーブル指定部２２１５は、仮タスクテーブル２２７３のうちいずれをタスクテーブル２２７２として採用するかを指定するデータを受け取り、その結果をタスクテーブル２２７２として反映する。ユーザは例えば通信装置３を介してタスクテーブル指定部２２１５に対して指示を入力することもできるし、車両制御システム２が備える車載ネットワークを経由してネットワーク送信により入力することもできる。
【００５１】
本実施形態５に係るＥＣＵ２２は、ユーザが所望するタスク割当を用いることができるので、ユーザの様々なニーズに対して柔軟に適合することができる。タスクテーブル更新部２２１３がタスクテーブル２２７２を更新することと併用してもよい。例えばユーザがタスクテーブルを入力または指定していない間はタスクテーブル更新部２２１３が作成したタスクテーブル２２７２を用いることができる。あるいはタスクテーブル更新部２２１３が作成したタスクテーブル２２７２そのものをユーザが指定してもよい。
【００５２】
＜本発明の変形例について＞
本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００５３】
以上の実施形態において、プロセッサコア間で処理負荷を平準化することを説明したが、その他演算装置の間で処理負荷を平準化する場合においても、本発明を適用することができる。例えばプロセッサ間で平準化することや、ＥＣＵ間で平準化することが考えられる。
【００５４】
以上の実施形態において、図２で説明したバス型ネットワークは例示であり、その他トポロジーを用いることもできる。例えば、（ａ）複数のＥＣＵ２２が直接ＧＷ２３に接続されるスター型、（ｂ）ＥＣＵ２２がリング状に接続されているリンク型、（ｃ）それぞれの型が混在し複数のネットワークにより構成される混在型、などがある。ＧＷ２３とＥＣＵ２２については、それぞれＧＷとしての機能を有するＥＣＵ２２を用いてもよいし、ＥＣＵ２２の機能を有するＧＷ２３を用いてもよい。
【００５５】
以上の実施形態において、処理負荷としてタスク実行時間を計測することを説明したが、より具体的には、例えば最悪実行時間を処理負荷として計測してもよい。これにより、予定されている実行周期以内でタスクが終了することを保証しつつタスクを再割当することができる。
【符号の説明】
【００５６】
１：車両
２：車両制御システム
２１：ネットワークリンク
２２：ＥＣＵ
２２１：プロセッサ
２２１１：タスク実行部
２２１２：処理負荷計測部
２２１３：タスクテーブル更新部
２２１４：タスクテーブル入力部
２２１５：タスクテーブル指定部
２２２：Ｉ／Ｏ
２２３：タイマ
２２４：ＲＯＭ
２２５：ＲＡＭ
２２６：内部バス
２２７：データフラッシュ
２２７１：計測データ
２２７２：タスクテーブル
２２７３：仮タスクテーブル
２３：ＧＷ
３：通信装置
【図１】
2018067135.tif 000003
【図２】
2018067135.tif 000004
【図３】
2018067135.tif 000005
【図４】
2018067135.tif 000006
【図５】
2018067135.tif 000007
【図６】
2018067135.tif 000008
【図７】
2018067135.tif 000009
【図８】
2018067135.tif 000010
【図９】
2018067135.tif 000011
【図１０】
2018067135.tif 000012
【図１１】
2018067135.tif 000013
【図１２】
2018067135.tif 000014