JP2022098090A - 車両制御装置 - Google Patents

車両制御装置 Download PDF

Info

Publication number
JP2022098090A
JP2022098090A JP2020211436A JP2020211436A JP2022098090A JP 2022098090 A JP2022098090 A JP 2022098090A JP 2020211436 A JP2020211436 A JP 2020211436A JP 2020211436 A JP2020211436 A JP 2020211436A JP 2022098090 A JP2022098090 A JP 2022098090A
Authority
JP
Japan
Prior art keywords
task
control device
core
vehicle control
time
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
Application number
JP2020211436A
Other languages
English (en)
Inventor
祐 石郷岡
Hiroshi Ishigooka
一 芹沢
Hajime Serizawa
隆 村上
Takashi Murakami
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 JP2020211436A priority Critical patent/JP2022098090A/ja
Priority to US18/252,974 priority patent/US20230415677A1/en
Priority to DE112021005574.7T priority patent/DE112021005574T5/de
Priority to PCT/JP2021/031889 priority patent/WO2022137651A1/ja
Publication of JP2022098090A publication Critical patent/JP2022098090A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R16/00Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for
    • B60R16/02Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements
    • B60R16/023Electric or fluid circuits specially adapted for vehicles and not otherwise provided for; Arrangement of elements of electric or fluid circuits specially adapted for vehicles and not otherwise provided for electric constitutive elements for transmission of signals between vehicle parts or subsystems
    • B60R16/0231Circuits relating to the driving or the functioning of the vehicle
    • B60R16/0232Circuits relating to the driving or the functioning of the vehicle for measuring vehicle parameters and indicating critical, abnormal or dangerous conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0736Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function
    • G06F11/0739Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in functional embedded systems, i.e. in a data processing system designed as a combination of hardware and software dedicated to performing a certain function in a data processing system embedded in automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2035Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant without idle spare hardware
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】故障したコアに応じてソフトウェアの移動先を決定し、コア移動後のソフトウェア動作に基づいて実行タイミングの競合を判定し、競合する場合には調停することで、安全性と可用性を向上することが可能な車両制御装置を提供する。【解決手段】複数のタスクを時刻同期で実行するCPU11を有する車両制御装置であって、CPU11のコア10の故障を検知する故障検知部121と、故障したコア10が実行していたタスクを故障していないコア10に割り当てる実行タイミング調停部124と、を備える。実行タイミング調停部124は、故障したコア10が実行していたタスクを故障していないコア10に割り当てるとき、故障していないコア10が実行するタスクを実行可能なように実行時刻を移動し、複数のタスクが実行可能な時刻を設定する。【選択図】図2

Description

本発明は、複数のCPUを有する車両制御装置に関する。
自動車制御システムは複数の電子制御ユニット(ECU)で構成される。ECUは厳しい時間制約(デッドライン)を満たすように、センサの入力処理、制御処理の目標値算出処理、アクチュエータの制御処理を実行する必要がある。低コスト化や省スペース化のためにECUの統合が進み、要求計算量の増加に対応したマルチコアが採用されている。
しかしながら、制御処理を実行しているコアに故障が発生した場合には、処理の継続実行が不可能となってしまうために、安全保証のためにECU全体を停止する縮退制御が実行される。
従って、制御処理を継続実行可能な可用性を向上させる技術が求められる。
特許文献1記載の技術によると、ソフトウェアを実行するコアを定義した設定情報(コア割当情報)を予め動作モードに対応付けて保存し、コア故障検知時にはリセットをトリガに、正常動作可能なコアのみで実行できる動作モードに切り替えることで、ソフトウェアを実行するコアを変更し、可用性を向上できる。
特開2018-112977号公報
しかしながら、特許文献1に記載の技術では、コア移動後のソフトウェアがリアルタイム性を保証して実行可能であることが保証できていない。また、予め設計する必要があるために、ソフトウェア更新に対応することが難しい。
本発明は、上記のような課題を解決するためになされたものであり、故障したコアに応じてソフトウェアの移動先を決定し、コア移動後のソフトウェア動作に基づいて実行タイミングの競合を判定し、競合する場合には調停することで、安全性と可用性を向上することが可能な車両制御装置を提供することを目的とする。
上記課題を解決するため、本発明は次のように構成される。
複数のタスクを時刻同期で実行するCPUを有する車両制御装置であって、 前記CPUのコアの故障を検知する故障検知部と、故障した前記コアが実行していたタスクを故障していないコアに割り当てる実行タイミング調停部と、を備え、 前記実行タイミング調停部は、前記故障した前記コアが実行していた前記タスクを前記故障していないコアに割り当てるとき、前記故障していない前記コアが実行する前記タスクを実行可能なように実行時刻を移動し、前記複数の前記タスクが実行可能な時刻を設定する。
本発明に係る車両制御装置によれば、故障したコアに応じてソフトウェアの移動先を決定し、コア移動後のソフトウェア動作に基づいて実行タイミングの競合を判定し、競合する場合には調停することで、安全性と可用性を向上することが可能な車両制御装置を提供することができる。
実施例1、2、3及び4に係る車両制御装置の構成図である。 実施例1、2及び3に係る車両制御装置の機能ブロック図である。 実施例1に係るタスクセット情報を示す図である。 実施例1に係るタスクセット情報を示す図である。 実施例1に係るタスクセット情報を示す図である。 実施例1に係る処理継続判定表を示す図である。 実施例1に係るコア割当情報を示す図である。 実施例1に係るスケジューリングテーブルを示す図である。 実施例1に係るスケジューリングテーブルを示す図である。 実施例1に係る継続処理判定部の処理フローチャートである。 実施例1に係るコア割当更新部の処理フローチャートである。 実施例1に係る実行タイミング調停部の処理フローチャートである。 実施例2に係るタスクセット情報を示す図である。 実施例2に係るタスクセット情報を示す図である。 実施例2に係るタスクセット情報を示す図である。 実施例2に係るスケジューリングテーブルを示す図である。 実施例2に係るスケジューリングテーブルを示す図である。 実施例2に係る実行タイミング調停部の処理フローチャートである。 実施例3に係るタスクセット情報を示す図である。 実施例3に係るタスクセット情報を示す図である。 実施例3に係るタスクセット情報を示す図である。 実施例3に係る処理継続判定表を示す図である。 実施例3にコア割当情報を示す図である。 実施例3に係るスケジューリングテーブルを示す図である。 実施例3に係るスケジューリングテーブルを示す図である。 実施例3に係る実行タイミング調停部の処理フローチャートである。 実施例4に係る制御システムの機能ブロック図である。 実施例5に係るシステムの構成図である。 実施例5に係る制御システムの機能ブロック図である。 実施例5に係るタスクセット情報を示す図である。 実施例5に係るタスクセット情報を示す図である。 実施例5に係るタスクセット情報を示す図である。 実施例5に係る処理継続判定表を示す図である。 実施例5にコア割当情報を示す図である。 実施例5に係るスケジューリングテーブルを示す図である。 実施例5に係るスケジューリングテーブルを示す図である。
本発明に係る車両制御装置は、制御ソフトウェアを実行するコアの故障を検出し、故障したコアによって影響をうける処理において継続実行すべき処理を選択し、継続実行すべき処理を動作させるコアを決定する。
また、継続実行すべき処理の追加によって生じる実行タイミングの競合を判定し、調停する。調停後のタイミングで車両制御装置を動作させる。
以下、図面を用いて本発明の実施の形態について説明する。
<実施例1>
図1は、本発明の実施例1に係るシステムの構成図を示す図である。車両制御装置0は、ECU1とネットワーク2で構成される。ECU1は複数のCPU11とメモリ12で構成される。複数のCPU11は、タスクを時刻同期で実行する。CPU11のそれぞれが複数のコア10から構成される場合があるので、CPU単体であってもマルチコアである可能性があり、本発明の対象となるが、本実施例1では1つのCPUが1つのコア10を有する。ECU1には、CPU11が複数存在するので、ECU1には、複数個のコア10が配置されている。メモリ12にはプログラムが保存される。メモリ12の個数は問わない。
図2は、実施例1に係るECU1の機能ブロック図を示す。ECU1の故障検知部121はコア10の故障を検知し、継続処理選定部122に故障箇所を通知する。継続処理選定部122は継続処理の対象となるタスクグループをコア割当更新部123に通知する。本実施例1では、ソフトウェア処理を実行する単位をタスクと呼ぶ。タスクはオペレーティングシステム(OS)が管理する実行管理対象であり、スレッドと同様である。
制御ソフトウェアの処理はタスクの中で実行されるため、1つのタスクのなかで複数の制御ソフトウェア処理を実行することもできる。コア割当更新部123は割当コアを選定し、前記タスクグループと共に実行タイミング調停部124に通知する。
実行タイミング調停部124は、新たに割り当てられた前記タスクグループと、本来割り当てられていたタスクグループの間の実行タイミング競合を検出する。つまり、故障したコア10が実行していたタスクを故障していないコア10が同時刻で実行できるか否かを検証する。そして、コア10のタスクの実行タイミング(実行時刻)を変更する(移動する)ことで調停する。実行時刻の変更は、コア10の入出力時間制約が供される範囲で行う。実行タイミング調停部124は、故障していたコア10の複数のタスクが独立して実行可能な時刻を設定し、調停されたタスクセット情報とする。調停されたタスクセット情報はスケジューラ127に通知される。スケジューラ127はタスクセット情報に基づいて、時分割でタスクを実行する。スケジューラ127は、時刻同期で実行するタスクを制御し、特定の時刻で特定のタスクを実行する。調停ができなかった場合には、縮退制御部125を実行し、エラー通知部126が、エラーを他のECUにネットワーク経由で通知する。
図3A、図3B、図3Cは実施例1に係るタスクセット情報131、132、133を示す図である。タスクセット情報はコアID、タスクグループ、タスクID、性質、周期、開始時間、終了時間、マージンから構成される。
コアIDとはCPU11を識別するIDである。タスクグループとは制御ソフトウェアの集合を示し、値はタスクグループIDを示す。タスクIDとはタスクを識別するIDを示す。性質とはタスクの役割を示す。Rはタスクグループへの入力処理を実施する(Copy-In)入力処理タスクであることを示し、Eは制御処理を実行する制御処理タスクであることを示し、WはEで算出した制御処理の結果を出力する(Copy-Out)出力処理タスクであることを示す。
周期はタスクが実行される間隔を示す。開始時間はタスクが実行を開始する時間であり、単位はmsである。終了時間はタスクが終了する時間であり、単位はmsである。マージンはタスクの実行時間が変動する可能性を考慮して設けられた余裕時間(タスクの実行時間の余裕時間)であり、マージンの時間だけ終了時間が長く設定されている。単位はmsである。
図3A)はコア故障発生前のタスクセット情報131であり、図3Bはコア割当先を決定したが調停前のタスクセット情報132であり、図3Cは調停後のタスクセット情報133を示す。
図4は実施例1に係る処理継続判定表134を示す。処理継続判定表134は機能グループ、タスクグループ、タスクID、処理継続、ASIL、要求CPU使用率から構成される。機能グループとは、車両制御機能のまとまりを示し、値は機能グループIDを示す。例えば、エンジンを制御するソフトウェアのグループや、運転支援システムや自動運転のための目標操舵角度や加減速指令を計算するソフトウェアのグループである。
タスクグループは機能グループを実現する1つ以上のタスクの集合であり、値はタスクグループIDを示す。1つの機能グループは1つ以上のタスクからなるタスクグループで構成される。また、1つのタスクグループはR、E、Wで構成され、少なくとも出力処理タスクは時分割で実行される。EはRの後で実行され、Wの前で実行される。タスクIDとはタスクを識別するIDを示す。処理継続とは、コア故障時にタスクグループの処理を継続するか否かを示す。「必要」とは処理を継続する必要があることを示し、「不必要」は処理を継続する必要がないことを示す。ASILとは機能安全規格ISO262626で定義されたAutomotive Safety Integrity Levelの略で、求められる自動車安全水準を示す。QM、A~Dでレベル付けされ、Dほど要求水準が高いことを意味する。要求CPU使用率とは、タスクグループを実行するときに消費するCPU使用率を意味する。
図5は実施例1に係るコア割当情報135を示す。コア割当情報135はコアID、ASIL,実行機能グループ、CPU使用率、マージン、CPU使用可能率から構成される。コアIDとはCPU11を識別するIDである。ASILとはコアが準拠するASILを示す。実行機能グループとは、コア10が実行する機能グループを示し、値は機能グループIDを示す。
CPU使用率とは前記実行機能グループを実行するときに消費するCPU負荷を意味する。マージンとはタスクグループの実行時間が予測から乖離したときにもリアルタイム性を保証するために要した時間的な余裕のことを意味する。CPU使用可能率とは、前記CPU使用率と前記マージンを除いた他のタスクグループを実行可能な程度を示す。
図6A、図6Bは実施例1に係るスケジューリングテーブル136、137を示す。スケジューリングテーブルはタスクグループと開始時間から構成される。タスクグループとは、特定のコアで実行されるタスクグループIDを示す。開始時間とは特定の時間に実行されるタスクIDを示す。図6Aは調停前のスケジューリングテーブル136を示し、図6Bは調停後のスケジューリングテーブル137を示す。
以降より、実施例1に係る動作フローの詳細を説明する。
図7は継続処理判定部122の処理フローである。以下、図7の各ステップについて説明する。
(図7:ステップ1221)
継続処理選定部122は故障箇所(コアID)に基づいてタスクセット情報から影響を受けるタスクグループを特定する。具体的にはタスクセット情報131からコアIDで実行されているタスクグループを特定する。
(図7:ステップ1222)
継続処理選定部122は特定した前記タスクグループから、処理継続判定表134に基づいて、前記タスクグループの停止によって影響を受ける機能グループを特定する。このステップ1222においては、処理継続判定表134に基づき、故障したコア10に応じて影響を受ける機能グループが自動車安全水準に基づいて、特定される。
(図7:ステップ1223)
継続処理選定部122は、処理継続判定表134に基づいて、特定した機能グループのなかで、処理継続が必要となるタスクグループを特定する。
図8はコア割当更新部123の処理フローチャートである。以下、図8の各ステップについて説明する。
(図8:ステップ1231)
コア割当更新部123は、前記タスクグループの移動先を探すために、コア割当情報135を参照し、CPU使用可能率が前記タスクグループの要求CPU使用率も大きいコアIDを見つける。
(図8:ステップ1232)
コア割当更新部123は、ステップ1231で見つけた前記コアIDが故障を検知したECUと同じECUであるか否かを判定する。真である場合には本処理フローを終了し、偽である場合にはステップ1233に進む。
(図8:ステップ1233)
コア割当更新部123は、ステップ1231で見つけたコアIDを有するECUに、割当コアIDとECUに処理継続が必要なタスクグループ情報を送付する。
図9は実行タイミング調停部124の処理フローチャートである。以下、図9の各ステップについて説明する。
(図9:ステップ12401)
実行タイミング調停部124は、処理継続が必要な前記タスクグループを、前記割当コアIDに追加するようにタスクセット情報を更新し、タスクセット情報132を作成する(図3B)。
(図9:ステップ12402)
実行タイミング調停部124は、前記割当コアIDに複数の機能グループが存在する場合には、マージンを機能グループ数で割る(図3B)。
(図9:ステップ12403)
実行タイミング調停部124は、ハイパーピリオドに基づいてスケジューリングテーブル(図6A)を作成し、処理継続が必要な前記タスクグループと同じ開始時刻に実行される別のタスクグループがあるか否かを調査する。
(図9:ステップ12404)
実行タイミング調停部124は、同じ時刻に実行されるタスクがある場合、それは処理継続が必要な前記タスクグループのRで発生したか否かを判定する。真である場合にはステップ12405に進み、偽である場合にはステップ12406に進む。
(図9:ステップ12405)
実行タイミング調停部124は、処理継続が必要な前記タスクグループのRを開始時間が早く、かつ、空いている時間に移動する。
(図9:ステップ12406)
実行タイミング調停部124は、同じ時刻に実行されるタスクがある場合、それは処理継続が必要な前記タスクグループのEで発生したか否かを判定する。真である場合にはステップ12407に進み、偽である場合にはステップ12408に進む。
(図9:ステップ12407)
実行タイミング調停部124は、処理継続が必要な前記タスクグループのEを開始時間が早く、かつ、空いている時間に移動する。タスクグループ内で実行順序を保つために、EはRよりも遅い時間に実行される。
(図9:ステップ12408)
実行タイミング調停部124は、同じ時刻に実行されるタスクがある場合、それは処理継続が必要な前記タスクグループのWで発生したか否かを判定する。真である場合にはステップ12409に進み、偽である場合にはステップ12410に進む。
(図9:ステップ12409)
実行タイミング調停部124は、処理継続が必要な前記タスクグループのWを開始時間が遅く、かつ、空いている時間に移動する。タスクグループ内で実行順序を保つために、WはEよりも遅い時間に実行される。EとWの時間は離れていてもよい。Eは予測した時間よりも超過する可能性があるが、マージンによって吸収される。現在のようにEとWが離れることによって、Wの実行タイミングが固定となるために、他のタスクグループを変更する必要がなく、リアルタイム性が保証できる。実行タイミング調停部124は、タスクグループの実行タイミングを、入力処理タスク、制御処理タスク及び出力処理タスクの実行順序を保ちつつ、変更(移動)して、実行タイミングを調停する。
(図9:ステップ12410)
実行タイミング調停部124は、W、E、Rのタスクが空いている開始時間に移動できたか否かを判断する。真である場合には本動作フローを終了し、偽である場合にはステップ12411に進む。
(図9:ステップ12411)
実行タイミング調停部124は、エラー情報をエラー通知部126経由でネットワーク2に送付し、縮退制御部125に縮退制御の実行を通知し、本動作フローを終了する。
以上のように、実行タイミング調停部124は、同一周期にて、出力タスクの実行までに入力処理タスクRと制御処理タスクEを、移動可能か否かを判定し、移動でいない場合は、エラーを通知し縮退制御が行われる。なお、ステップ12411においては、エラー通知または縮退制御の通知を行うこととしてもよい。本実施例1によると、コア故障が発生しても処理継続が必要なタスクが別のコアで実行が可能となるために可用性が向上する。
また、本実施例1によると、処理継続が必要なタスクが別のコアで実行する場合に、処理の実行タイミング競合が発生しても、実行順序を守りつつ、空き時間に実行タイミングを変更するために、制御演算結果に影響を出さず、かつ、デッドラインを保証できる。
また、本実施例1によると、処理の実行タイミングに競合が発生した場合に、処理継続が必要なタスクの実行時間を変更し、元々実行していたタスクに影響を与えないために、リアルタイム性の影響を与える範囲を局所化できる。
また、本実施例1によると、EのタスクとWのタスクが分離され、時間が空いているために、Eのタスクが予測時間より長く実行されたとしてもマージンで吸収され、Wのタスクの実行時間には影響を与えない。従って、検証範囲を局所化することができる。
本実施例1によれば、故障したコアに応じてソフトウェアの移動先を決定し、コア移動後のソフトウェア動作に基づいて実行タイミングの競合を判定し、競合する場合には調停することで、安全性と可用性を向上することが可能な車両制御装置を提供することができる。 なお、本実施例1によると、タスクは実行可能なタイミングを時刻で管理された時分割スケジューリングに基づいて実装されているが、これに限らない。
<実施例2>
実施例2は本発明を優先度スケジューリングで実現する例である。実施例1との差分のみに絞って説明する。
図10は実施例2に係るタスクセット情報231、232、233を示す。タスクセット情報はコアID、タスクグループ、タスクID、性質、周期、優先度、開始時間、実行時間、マージンから構成される。コアID、タスクグループ、タスクID、性質、周期、開始時間、マージンは実施例1と同様である。優先度とは、複数のタスクが実行可能状態である場合に、先に実行する順番を決定するための数字で、数字が小さいほど優先度が高い。実行時間とは、タスクが実行に要する時間である。実行時間は設計時に規定した予測に基づいた値で規定されるが、出荷後に想定よりも大きくなる可能性を見越してマージンが設けられている。実行時間にはマージンの時間を含んでいない。同じタスクグループのRとEは同じ優先度としているがこれに限らない。Rの後にEが実行されるようになっていれば変更可能である。一方、WはRやEよりも優先度を高く設定する。これは出力タイミングを固定にすることで、他からの影響を受けないようにし、検証する範囲を局所化するためである。
図11A、図11Bは実施例2に係るスケジューリングテーブル236、237を示す。スケジューリングテーブルはタスクグループと開始時間から構成され、タスクグループと開始時間は実施例1と同じ意味を持つ。
図12は実施例2に係る実行タイミング調停部224の処理フローである。以下、図12の各ステップについて説明する。
(図12:ステップ2241)
実行タイミング調停部124は、処理継続が必要な前記タスクグループを、前記割当コアIDに追加するようにタスクセット情報を更新し、タスクセット情報232を作成する(図10B)。
(図12:ステップ2242)
実行タイミング調停部124は、同一の前記コアIDに複数の機能グループが存在する場合には、マージンを機能グループ数で割る(図10B)。
(図12:ステップ2243)
実行タイミング調停部124は、ハイパーピリオドに基づいてスケジューリングテーブル(図11A)を作成し、処理継続が必要な前記タスクグループと同じ開始時刻に実行される別のタスクグループがあるか否かを調査する。
(図12:ステップ2244)
実行タイミング調停部124は、同じ時刻に実行されるのタスクがある場合、それは処理継続が必要な前記タスクグループのWで発生したか否かを判定する。真である場合にはステップ2245に進み、偽である場合にはステップ2246に進む。
(図12:ステップ2445)
実行タイミング調停部124は、処理継続が必要な前記タスクグループのWを開始時間が遅く、かつ、空いている時間に移動する。タスクグループ内で実行順序を保つために、WはEよりも遅い時間に実行される。EとWの時間は離れていてもよい。Eは予測した時間よりも超過する可能性があるが、マージンによって吸収される。現在のように、EとWの実行タイミングは不連続である、EとWが離れることによって、Wの実行タイミングが固定となるために、他のタスクグループを変更する必要がなく、リアルタイム性が保証できる。つまり、高い優先度が与えられたタスクは、特定の時刻で特定の処理が必ず行われる。
(図12:ステップ2246)
実行タイミング調停部124は、実行時間の総和が周期を超えないことを判定する。真である場合には本動作フローを終了し、偽である場合にはステップ2247に進む。
(図12:ステップ2247)
実行タイミング調停部124は、エラー情報をエラー通知部126経由でネットワークに送付し、縮退制御部125により縮退制御が実行され、本動作フローを終了する。
本実施例2によれば、実施例1と同様な効果が得られる他、以下のような効果を得ることができる。
本実施例2によると、優先度スケジューリングで実装された車両制御装置では、処理継続が必要なタスクグループによって、新たに実行タイミングで競合が発生しても、前記タスクグループのWのみを移動させ、スケジューラリビティが成立性する限り、リアルタイム性を保証できる。
本実施例2によると、CPUが100%を超過しないことを確認するためのスケジューラビリティの検証を、実行時間の総和が周期を超えないことで判定したが、これに限らない。例えば、複数の周期からなる場合にはハイパーピリオドに基づいて検証する。
本実施例2によると、RやEに関しては、同じタスクグループで優先度を同じとし、実行時間をR、Eの順にしているために、競合が発生しても、優先度スケジューリングに基づいて、調停が行われるため、実行タイミング調停部の処理を簡略化することができる。
<実施例3>
本実施例3は処理継続が必要なタスクグループが移動先と同じ機能グループである場合の例である。スケジューリング方式は問わないため、実施例3は優先度スケジューリングで説明する。従って、実施例2との差分のみに絞って説明する。
図13A、図13B、図13Cは実施例3に係るタスクセット情報331、332、333を示す。タスクセット情報はコアID、タスクグループ、タスクID、性質、周期、優先度、開始時間、実行時間、マージンから構成され、すべての項目は実施例2と同様である。
図14は実施例3に係る処理継続判定表334を示す。処理継続判定表334は機能グループ、タスクグループ、タスクID、処理継続、ASIL、要求CPU使用率から構成され、すべての項目は実施例2と同様である。実施例2との差異は、タスクグループ2が属する機能グループが、タスクグループ1が属する機能グループ1と同様となっている点である。
図15は実施例3に係るコア割当情報335を示す。コア割当情報335はコアID、ASIL、実行機能グループ、CPU使用率、マージン、CPU使用可能率から構成され、すべての項目は実施例2と同様である。実施例2との差異は、コアID2の実行機能グループが1、2となっている点である。
図16A、図16Bは実施例3に係るスケジューリングテーブル336、337を示す。スケジューリングテーブル336、337はタスクグループと開始時間から構成され、タスクグループと開始時間は実施例2と同じ意味を持つ。実施例2との差異は、実施例3に合わせてタスクグループIDが変更されている点である。
図17は実施例3に係る実行タイミング調停部124の処理フローである。以下、図17の各ステップについて説明する。
(図17:ステップ3241)
実行タイミング調停部124は、処理継続が必要な前記タスクグループを、前記割当コアIDに追加するようにタスクセット情報を更新し、タスクセット情報332を作成する(図13B)。
(図17:ステップ3242)
実行タイミング調停部124は、前記コアIDにマージンを有する同じ機能グループが存在する場合には、優先度が低いE(特定のタスク)にマージンを集結させる(図13B)。
(図17:ステップ3243)
実行タイミング調停部124は、ハイパーピリオドに基づいてスケジューリングテーブル(図16A)を作成し、処理継続が必要な前記タスクグループと同じ開始時刻に実行される別のタスクグループがあるか否かを調査する。
(図17:ステップ3244)
実行タイミング調停部124は、同じ時刻に実行されるのタスクがある場合、それは処理継続が必要な前記タスクグループのWで発生したか否かを判定する。真である場合にはステップ3245に進み、偽である場合にはステップ3246に進む。
(図17:ステップ3445)
実行タイミング調停部124は、処理継続が必要な前記タスクグループのWを開始時間が遅く、かつ、空いている時間に移動する。タスクグループ内で実行順序を保つために、WはEよりも遅い時間に実行される。EとWの時間は離れていてもよい。Eは予測した時間よりも超過する可能性があるが、マージンによって吸収される。現在のようにEとWが離れることによって、Wの実行タイミングが固定となるために、他のタスクグループを変更する必要がなく、リアルタイム性が保証できる。
(図17:ステップ3246)
実行タイミング調停部124は、実行時間の総和が周期を超えないことを判定する。真である場合には本動作フローを終了し、偽である場合にはステップ3247に進む。
(図17:ステップ3247)
実行タイミング調停部124は、エラー情報をエラー通知部126経由でネットワークに送付し、縮退制御部125が縮退制御を実行し、本動作フローを終了する。
実施例3によれば実施例2と同様な効果を得ることができる他、次のような効果を得ることができる。
本実施例3によると、同じ機能グループに属するタスクグループが同じコアで実行されるとき、マージンを統合することができるため、実行時間が予測よりも長くなった場合に、全体のマージンが少なくても同様に吸収することができ、効率的に実装できる。
<実施例4>
実施例4は、コア故障発生前に、予め各コア故障時のタスクセット情報を用意する場合の例である。実施例1との差分のみに絞って説明する。
図18は、実施の形態4に係るECU1の機能ブロック図を示す。ECU1のコンフィグ生成部428は、コア故障発生前に予め各コア故障が発生した場合を想定し、各コアが故障した故障箇所を継続処理選定部122に出力する。そして、コア割当更新部123がコア割当を更新し、実行タミング調停部124が各タスクセット情報133を生成する。生成した各タスクセット情報133はスケジューラ427に格納される。故障検知時には、故障検知部421がスケジューラ427に故障箇所(コアID)を通知し、スケジューラ427はコアIDに基づいて、タスクセット情報133を選定する。
本実施例4は、実施例1と同様な効果が得られる他、次のような効果を得ることができる。
本実施例4によると、故障発生の前に予め、各コア10が故障した場合に採用するタスクセット情報を用意することができるため、故障発生後に処理継続の必要があるタスクを特定のコア10で実行するまでの時間が早くなる。
<実施例5>
実施例5は、コア10の故障発生時に、別のECUのコア10で処理継続の必要があるタスクを実行する場合の例である。実施例1との差分のみに絞って説明する。
図19は、本発明の実施例5に係るシステムの構成図を示す。車両制御装置3は、ECU4と、ECU5と、ネットワーク6で構成される。ECU4とECU5は複数のCPU11とメモリ12で構成されており、ECU4、5の内部構成はCPU11の個数に差があるが、基本的には実施例1と同じである。
図20は、実施例5に係るECU4、5の機能ブロック図を示す。ECU4は、実施例1で説明した故障検知部121と継続処理選定部122とを備える。継続処理選定部122の出力となるタスクグループ情報はネットワーク6を通じて、ECU5に送付され、コア割当更新部123の入力となる。ECU5は、コア割当更新部123と、実行タイミング調停部124と、縮退制御部125と、エラー通知部126と、スケジューラ127とを備える。
図21A、図21B、図21Cは実施例5に係るタスクセット情報531、532、533を示す。タスクセット情報はECUID、コアID、タスクグループ、タスクID、性質、周期、優先度、開始時間、実行時間、マージンから構成される。実施例5は複数のECU4、5が対象となるために、ECUIDが追加されている点が他の実施例と異なる。
図22は実施例5に係る処理継続判定表534を示す。処理継続判定表534は機能グループ、タスクグループ、タスクID、処理継続、ASIL、要求CPU使用率から構成され、すべての項目は実施例2と同様である。他の実施例との差異は、機能グループ3が追加されている点である。
図23は実施例5に係るコア割当情報535を示す。コア割当情報535はECUID、コアID、ASIL、実行機能グループ、CPU使用率、マージン、CPU使用可能率から構成される。実施例5は複数のECU4、5が対象となるために、ECUIDが追加されている点が他の実施例と異なる。
図24A、図24Bは実施例5に係るスケジューリングテーブル536、537を示す。スケジューリングテーブル536、537はタスクグループと開始時間から構成され、タスクグループと開始時間は、他の実施例と同じ意味を持つ。他の実施例との差異は、実施例5に合わせてタスクグループIDが変更されている点である。
本実施例5によれば、実施例1と同様な効果が得られる他、次のような効果が得られる。
本実施例5によると、コア故障後に処理継続の必要があるタスクグループを同じECU内で実行できないとき、他のECUで実行することが可能となるため、可用性が向上できる。
0、3・・・車両制御装置、1、4、5・・・ECU、2、6・・・ネットワーク、10・・・コア、11・・・CPU、12・・・メモリ、121・・・故障検知部、122・・・継続処理選定部、123・・・コア割当更新部、124・・・実行タイミング調停部、125・・・縮退制御部、126・・・エラー通知部、127・・・スケジューラ、136、137、236、237、336、337、536、537・・・スケジューリングテーブル

Claims (12)

  1. 複数のタスクを時刻同期で実行するCPUを有する車両制御装置であって、
    前記CPUのコアの故障を検知する故障検知部と、
    故障した前記コアが実行していたタスクを故障していないコアに割り当てる実行タイミング調停部と、
    を備え、
    前記実行タイミング調停部は、前記故障した前記コアが実行していた前記タスクを前記故障していない前記コアに割り当てるとき、前記故障していない前記コアが実行する前記タスクを実行可能なように実行時刻を移動し、前記複数の前記タスクが実行可能な時刻を設定することを特徴とする車両制御装置。
  2. 請求項1に記載の車両制御装置において、
    前記故障した前記コアの前記タスクの実行を継続するか否かを自動車安全水準に基づいて判定することを特徴とする車両制御装置。
  3. 請求項1に記載の車両制御装置において、
    前記実行タイミング調停部は、前記故障した前記コアの前記タスクが属する車両の機能グループが前記故障していない前記コアの前記タスクが属する前記車両の機能グループに属する場合、前記タスクの実行時間の余裕時間であるマージンを特定の前記タスクに集結させることを特徴とすることを車両制御装置。
  4. 請求項1に記載の車両制御装置において、
    車両の機能グループが1つ以上の前記タスクからなるタスクグループで構成され、前記タスクグループは、入力処理タスク、制御処理タスク及び出力処理タスクで構成され、前記制御処理タスクは前記入力処理タスクの後で実行され、前記出力処理タスクの前で実行され、少なくとも前記出力処理タスクは時分割実行されることを特徴とする車両制御装置。
  5. 請求項1に記載の車両制御装置において、
    時刻同期で実行される前記タスクを制御し、特定の時刻で特定の処理を実行するスケジューラを備えることを特徴とする車両制御装置。
  6. 請求項4に記載の車両制御装置において、
    前記タスクには優先度が与えられ、高い優先度が与えられた前記タスクは、特定の時刻で特定の処理を実行する優先度スケジューラを備えることを特徴とする車両制御装置。
  7. 請求項4に記載の車両制御装置において、
    前記実行タイミング調停部は、前記タスクグループの実行時刻を、前記入力処理タスク、前記制御処理タスク及び前記出力処理タスクの実行順序を保ちつつ、移動することを特徴とする車両制御装置。
  8. 請求項4に記載の車両制御装置において、
    前記実行タイミング調停部は、同一周期にて、前記出力処理タスクの実行までに、前記入力処理タスク及び前記制御処理タスクが終了する時間を、移動可能か否かを判定し、移動できない場合には、縮退制御の通知またはエラー通知を行うことを特徴とする車両制御装置。
  9. 請求項1に記載の車両制御装置において、
    車両の機能グループが、1つ以上の前記タスクからなるタスクグループにより構成され、複数の前記機能グループの前記タスクグループが同一の前記コアに存在する場合には、前記タスクの実行時間の余裕時間であるマージンを前記機能グループの数で割ることを特徴とする車両制御装置。
  10. 請求項1に記載の車両制御装置において、
    車両の機能グループが、1つ以上の前記タスクからなるタスクグループにより構成され、前記タスクグループは、入力処理タスク、制御処理タスク及び出力処理タスクにより構成され、前記制御処理タスクと前記出力処理タスクの実行タイミングは不連続であることを特徴とする車両制御装置。
  11. 請求項1に記載の車両制御装置において、
    車両の機能グループが、1つ以上の前記タスクからなるタスクグループにより構成され、前記故障した前記コアが実行していた前記タスクグループのうち、継続処理が必要な前記タスクグループを特定する継続処理選定部を備えることを特徴とする車両制御装置。
  12. 請求項1に記載の車両制御装置において、
    前記コアは複数個であり、前記複数個の前記コアは、故障発生前に前記複数個の前記コアのそれぞれが故障した場合を想定し、前記複数個の前記コアの故障個所を出力するコンフィグ生成部と、前記コンフィグ生成部が生成した前記複数個の前記コアの故障個所に基づいたタスクセット情報を格納するスケジューラと、 を備え、
    前記スケジューラは、前記故障検知部が、前記コアの故障を検知すると、前記スケジューラに格納された前記タスクセット情報から前記故障した前記コアに対応する前記タスクセット情報を選定することを特徴とする車両制御装置。
JP2020211436A 2020-12-21 2020-12-21 車両制御装置 Pending JP2022098090A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020211436A JP2022098090A (ja) 2020-12-21 2020-12-21 車両制御装置
US18/252,974 US20230415677A1 (en) 2020-12-21 2021-08-31 Vehicle control device
DE112021005574.7T DE112021005574T5 (de) 2020-12-21 2021-08-31 Fahrzeugsteuervorrichtung
PCT/JP2021/031889 WO2022137651A1 (ja) 2020-12-21 2021-08-31 車両制御装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020211436A JP2022098090A (ja) 2020-12-21 2020-12-21 車両制御装置

Publications (1)

Publication Number Publication Date
JP2022098090A true JP2022098090A (ja) 2022-07-01

Family

ID=82158929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020211436A Pending JP2022098090A (ja) 2020-12-21 2020-12-21 車両制御装置

Country Status (4)

Country Link
US (1) US20230415677A1 (ja)
JP (1) JP2022098090A (ja)
DE (1) DE112021005574T5 (ja)
WO (1) WO2022137651A1 (ja)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4399987B2 (ja) * 2001-01-25 2010-01-20 株式会社デンソー 車両統合制御におけるフェイルセーフシステム
JP4410661B2 (ja) * 2004-11-09 2010-02-03 株式会社日立製作所 分散制御システム
JP6010975B2 (ja) * 2012-03-30 2016-10-19 日本電気株式会社 ジョブ管理装置、ジョブ管理方法、及びプログラム
JP6729407B2 (ja) 2017-01-13 2020-07-22 株式会社デンソー マイクロコンピュータ

Also Published As

Publication number Publication date
DE112021005574T5 (de) 2023-08-31
US20230415677A1 (en) 2023-12-28
WO2022137651A1 (ja) 2022-06-30

Similar Documents

Publication Publication Date Title
JP5195913B2 (ja) マルチコアシステム、車両用電子制御ユニット、タスク切り替え方法
KR102571293B1 (ko) 충돌들의 존재시 효율적인 작업 스케줄링을 위한 방법
JP5316718B1 (ja) マルチコア・プロセッサ
JP2003298599A (ja) 分散制御方法及び装置
US11115232B2 (en) Method and device for operating a control unit
US20080104602A1 (en) Task switching control method and computer system
JP5533789B2 (ja) 車載電子制御装置
JP2014191655A (ja) マルチプロセッサ、電子制御装置、プログラム
US20100281485A1 (en) Method For Changing Over A System Having Multiple Execution Units
JP5726006B2 (ja) タスクおよびリソースのスケジューリング装置及びその方法並びに制御装置
WO2022137651A1 (ja) 車両制御装置
US20050160425A1 (en) Limitation of the response time of a software process
US20050066093A1 (en) Real-time processor system and control method
JP5652198B2 (ja) 電子制御装置、起動制御方法
JP5053109B2 (ja) 制御装置
JP2017182627A (ja) マイクロコンピュータ
JPWO2018211865A1 (ja) 車両制御装置
US20180068501A1 (en) Multiprocessor system and vehicle control system
JP7271973B2 (ja) 車両制御装置、動作クロック切換方法
JP7263746B2 (ja) 情報処理装置
JP6183251B2 (ja) 電子制御装置
JP7409567B2 (ja) 自動車用コンピュータの制御方法、及び車両用電子制御装置
WO2022180893A1 (ja) 制御装置及び制御方法
JP7141977B2 (ja) 制御装置および制御方法
JP2005107757A (ja) プログラムの暴走検出方法およびプログラムの暴走検出装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230705

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240730

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240924