Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP7468308B2 - On-vehicle ECU, program, and information processing method - Google Patents
[go: Go Back, main page]

JP7468308B2 - On-vehicle ECU, program, and information processing method - Google Patents

On-vehicle ECU, program, and information processing method Download PDF

Info

Publication number
JP7468308B2
JP7468308B2 JP2020189749A JP2020189749A JP7468308B2 JP 7468308 B2 JP7468308 B2 JP 7468308B2 JP 2020189749 A JP2020189749 A JP 2020189749A JP 2020189749 A JP2020189749 A JP 2020189749A JP 7468308 B2 JP7468308 B2 JP 7468308B2
Authority
JP
Japan
Prior art keywords
virtual
time
allocated
control unit
ecu
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
JP2020189749A
Other languages
Japanese (ja)
Other versions
JP2022078814A (en
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.)
Sumitomo Wiring Systems Ltd
Original Assignee
Sumitomo Wiring Systems 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 Sumitomo Wiring Systems Ltd filed Critical Sumitomo Wiring Systems Ltd
Priority to JP2020189749A priority Critical patent/JP7468308B2/en
Priority to PCT/JP2021/039196 priority patent/WO2022102383A1/en
Publication of JP2022078814A publication Critical patent/JP2022078814A/en
Application granted granted Critical
Publication of JP7468308B2 publication Critical patent/JP7468308B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mechanical Engineering (AREA)
  • Stored Programmes (AREA)

Description

本発明は、車載ECU、プログラム、及び情報処理方法に関する。 The present invention relates to an in-vehicle ECU, a program, and an information processing method.

車両に搭載され、当該車両に搭載された機器の制御や、車外通信、自動運転等の走行制御に関する情報処理を行う電子制御装置が知られている(例えば特許文献1)。特許文献1の電子制御装置は、複数のコアを有するマルチコアCPUを備え、マルチコアCPU上で複数のプログラムシステムが、動作する。電子制御装置は、各プログラムシステムのオペレーティングシステムにおいて、システムの状態の変化に応じて各プログラムシステムに割当てるコアを変更するように構成されている。 There is known an electronic control device that is mounted on a vehicle and processes information related to the control of devices mounted on the vehicle, external communication, and driving control such as autonomous driving (for example, Patent Document 1). The electronic control device of Patent Document 1 is equipped with a multi-core CPU having multiple cores, and multiple program systems run on the multi-core CPU. The electronic control device is configured to change the cores assigned to each program system in the operating system of each program system according to changes in the system state.

特開2019-179397号公報JP 2019-179397 A

しかしながら、特許文献1の電子制御装置は、実行されたタスク処理の終了に応じて、他のタスク処理にCPUコア等のハードウェアリソースを割り当てる点に関する考慮されていないという問題点がある。 However, the electronic control device in Patent Document 1 has a problem in that it does not take into consideration the allocation of hardware resources such as a CPU core to other task processes upon completion of the currently executed task process.

本開示は、実行されたプログラムの状態に応じて、他のプログラムにCPU等のハードウェアリソースを効率的に割り当てることができる車載ECU等を提供する。 This disclosure provides an in-vehicle ECU etc. that can efficiently allocate hardware resources such as a CPU to other programs depending on the state of the executed program.

本開示の一態様に係る車載ECUは、車両に搭載される車載ECUであって、複数のプログラムを実行する制御部と、前記制御部によって起動される仮想化オペレーティングシステムが記憶されている記憶部とを備え、前記仮想化オペレーティングシステムを起動することにより複数の仮想環境が生成され、前記プログラムは前記仮想環境を動作環境とするものであり、前記仮想化オペレーティングシステムを管理する管理部は、前記複数の仮想環境の内のいずれかの仮想環境にて実行されるプログラムにおけるタスク完了通知に基づき、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、他の仮想環境に割り当てる。 An on-board ECU according to one aspect of the present disclosure is an on-board ECU mounted on a vehicle, and includes a control unit that executes multiple programs, and a storage unit that stores a virtualized operating system that is activated by the control unit. Multiple virtual environments are generated by activating the virtualized operating system, and the programs operate in the virtual environments. A management unit that manages the virtualized operating system allocates the allocated time period of the control unit that was allocated to one of the virtual environments to another virtual environment based on a task completion notification in a program executed in one of the multiple virtual environments.

本開示の一態様によれば、実行されたプログラムの状態に応じて、他のプログラムにCPU等のハードウェアリソースを効率的に割り当てることができる車載ECU等を提供する。 According to one aspect of the present disclosure, an in-vehicle ECU or the like is provided that can efficiently allocate hardware resources such as a CPU to other programs depending on the state of the executed program.

実施形態1に係る車載ECUを含む車載システムの構成を例示する模式図である。1 is a schematic diagram illustrating a configuration of an in-vehicle system including an in-vehicle ECU according to a first embodiment; 車載ECUの物理構成を例示するブロック図である。FIG. 2 is a block diagram illustrating a physical configuration of an in-vehicle ECU. 車載ECUの論理構成(仮想ECU)を例示するブロック図である。FIG. 2 is a block diagram illustrating a logical configuration (virtual ECU) of an in-vehicle ECU. 仮想ECUにおける機能部を例示する機能ブロック図である。FIG. 2 is a functional block diagram illustrating functional units in a virtual ECU. 割当時間テーブル(割当時間情報)を例示する説明図である。FIG. 11 is an explanatory diagram illustrating an example of an allocation time table (allocation time information); 仮想環境に対する制御部の割当時間帯に関する説明図である。FIG. 11 is an explanatory diagram regarding a time period allocated to a control unit for a virtual environment. 車載ECU(仮想ECU)の制御部(仮想制御部)の処理を例示するフローチャートである。4 is a flowchart illustrating the processing of a control unit (virtual control unit) of an in-vehicle ECU (virtual ECU). 実施形態2に係る割当時間テーブル(割当時間情報)を例示する説明図である。FIG. 11 is an explanatory diagram illustrating an example of an allocation time table (allocation time information) according to the second embodiment. 仮想環境に対する制御部の割当時間帯に関する説明図である。FIG. 11 is an explanatory diagram regarding a time period allocated to a control unit for a virtual environment.

[本発明の実施形態の説明]
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
[Description of the embodiments of the present invention]
First, embodiments of the present disclosure will be listed and described. In addition, at least some of the embodiments described below may be arbitrarily combined.

(1)本開示の一態様に係る車載ECU(Electronic Control Unit)は、車両に搭載される車載ECUであって、複数のプログラムを実行する制御部と、前記制御部によって起動される仮想化オペレーティングシステムが記憶されている記憶部とを備え、前記仮想化オペレーティングシステムを起動することにより複数の仮想環境が生成され、前記プログラムは前記仮想環境を動作環境とするものであり、前記仮想化オペレーティングシステムを管理する管理部は、前記複数の仮想環境の内のいずれかの仮想環境にて実行されるプログラムにおけるタスク完了通知に基づき、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、他の仮想環境に割り当てる。 (1) An on-board ECU (Electronic Control Unit) according to one embodiment of the present disclosure is an on-board ECU mounted on a vehicle, and includes a control unit that executes multiple programs, and a storage unit that stores a virtualized operating system that is activated by the control unit. Multiple virtual environments are generated by activating the virtualized operating system, and the programs operate in the virtual environments. A management unit that manages the virtualized operating system allocates the allocated time period of the control unit that was allocated to one of the virtual environments to another virtual environment based on a task completion notification in a program executed in one of the multiple virtual environments.

本態様にあたっては、プログラムにおいて定義(コーディング)されている内容に基づき、単一又は複数のタスク(処理)が実行される。当該タスクは周期的に実行(起動)されるものであり、すなわちタスクは周期的に開始され、予め定められている内容に基づいた情報処理を行うことにより、当該タスクは完了(終了)する。プログラムを実行するにあたり生成されたプロセスは、タスクが完了した際、タスク完了通知を仮想化オペレーティングシステムの管理部に出力する。当該管理部は、仮想化オペレーティングシステムによって生成された仮想環境を管理するための管理プログラムを実行するにあたり生成されたプロセスに相当する。例えば、ハイパーバイザー方式の仮想化オペレーティングシステムを用いた場合、車載機器等の制御を行うプログラムの動作環境となる仮想環境は、仮想ECUに相当する。従って、仮想化オペレーティングシステムを用いることにより、車載ECUにおいて、実行するプログラムの個数又は種類に応じて、複数の仮想ECUを構成することができる。また、仮想環境を管理する管理プログラムの動作環境となる仮想環境についても、仮想ECUに相当するものであってもよい。このような複数の仮想環境(仮想ECU)が構成される車載ECUにおいて、管理部は、仮想環境にて実行されるプログラムからのタスク完了通知を取得した場合、当該仮想環境に割り当てられていた制御部の割当時間帯を、他の仮想環境に割り当てる。すなわち、管理部は、当該タスク完了通知に基づき、仮想環境それぞれに対する制御部の割当時間帯を、再スケジュールする処理を行う。これにより、当該プログラムにおけるタスク完了後の空き時間を、当該プログラム以外の他のプログラムを実行する他の仮想環境に割り当て、当該他の仮想環境を動作環境とする他のプログラムを実行することができる。従って、プログラムにおけるタスク完了後の空き時間を有効活用することにより、複数の仮想環境によって共用される制御部等のハードウェアリソースを効率的に割り当てるスケジューリングを行い、制御部(CPU)における実質的な使用率(CPU使用率)を向上させることができる。 In this embodiment, a single or multiple tasks (processing) are executed based on the contents defined (coded) in the program. The tasks are executed (started) periodically, that is, the tasks are started periodically, and are completed (ended) by performing information processing based on the predetermined contents. When the process generated to execute the program completes the task, it outputs a task completion notification to the management unit of the virtualized operating system. The management unit corresponds to the process generated to execute the management program for managing the virtual environment generated by the virtualized operating system. For example, when a hypervisor-type virtualized operating system is used, the virtual environment that is the operating environment of the program that controls the in-vehicle equipment, etc. corresponds to the virtual ECU. Therefore, by using the virtualized operating system, multiple virtual ECUs can be configured in the in-vehicle ECU according to the number or type of programs to be executed. In addition, the virtual environment that is the operating environment of the management program that manages the virtual environment may also correspond to a virtual ECU. In such an in-vehicle ECU in which multiple virtual environments (virtual ECUs) are configured, when the management unit receives a task completion notification from a program executed in the virtual environment, it assigns the assigned time zone of the control unit that was assigned to the virtual environment to another virtual environment. That is, the management unit performs a process to reschedule the time slots allocated to the control unit for each virtual environment based on the task completion notification. This allows the free time after a task in the program is completed to be allocated to another virtual environment that executes a program other than the program in question, and allows the execution of another program that uses the other virtual environment as its operating environment. Therefore, by effectively utilizing the free time after a task in a program is completed, it is possible to perform scheduling that efficiently allocates hardware resources such as the control unit shared by multiple virtual environments, and improve the effective utilization rate (CPU utilization rate) of the control unit (CPU).

(2)本開示の一態様に係る車載ECUは、前記記憶部には、前記複数の仮想環境に対する前記制御部の割当時間帯を定める割当時間情報が記憶されており、前記割当時間情報は、前記いずれかの仮想環境の割当時間帯と、前記いずれかの仮想環境に対し次位の仮想環境の割当時間帯とを含み、前記他の仮想環境に割り当てられる割当時間帯は、前記管理部がタスク完了通知を取得した以降から、前記次位の仮想環境の割当時間帯の開始時点までである。 (2) In one embodiment of the in-vehicle ECU of the present disclosure, the memory unit stores allocation time information that defines the allocation time zone of the control unit for the multiple virtual environments, and the allocation time information includes an allocation time zone of one of the virtual environments and an allocation time zone of a virtual environment that is next to the one of the virtual environments, and the allocation time zone allocated to the other virtual environment is from after the management unit obtains a task completion notification to the start of the allocation time zone of the next virtual environment.

本態様にあたっては、複数の仮想環境に対する制御部の割当時間帯を定める割当時間情報(割当時間テーブル)は、記憶部に記憶されており、仮想化オペレーティングシステムの管理部は、当該割当時間情報を参照することにより、それぞれの仮想環境に対し、制御部の利用時間を割り当てる。これにより、例えば、制御部がシングルコアの単一CPUにて構成されている場合であっても、当該コアによる処理能力を時間分割(タイムシェリング)して、仮想環境それぞれに対する処理時間を確保することができる。また、制御部がマルチコアの単一CPU又は複数CPUにて構成されている場合であっても、各コアに対して同様の時間分割を行い、仮想環境それぞれに対する処理時間を確保することができる。割当時間情報において、いずれかの仮想環境の割当時間帯と、当該いずれかの仮想環境に対し次位の仮想環境の割当時間帯とが、定義されているところ、他の仮想環境に割り当てられる割当時間帯は、管理部がタスク完了通知を取得した以降から、次位の仮想環境の割当時間帯の開始時点までとしてある。従って、他の仮想環境に割り当てられる割当時間帯の終了時点は、当該次位の仮想環境の割当時間帯の開始時点に応じて決定(拘束)されるものとなる。これにより、他の仮想環境による割当時間帯の影響を受けることなく、当該次位の仮想環境の割当時間帯に基づき、当該次位の仮想環境の割当時間帯に対する制御部の利用時間の割当を行うことができる。タスク完了通知に基づき他の仮想環境に制御部の利用時間が割り当てられた場合であっても、当該次位の仮想環境の割当時間帯も含め、割当時間情報によるスケジューリングを変更することなく、当該割当時間情報にて予め定められているとおり、各仮想環境に対し適切に制御部の利用時間を割り当てる。これにより、当該仮想環境を動作環境とするプログラムを効率的に実行することができる。 In this embodiment, the allocation time information (allocation time table) that defines the allocation time of the control unit for multiple virtual environments is stored in the storage unit, and the management unit of the virtualized operating system allocates the use time of the control unit to each virtual environment by referring to the allocation time information. As a result, even if the control unit is configured with a single CPU with a single core, the processing power of the core can be time-shared (time sharing) to ensure processing time for each virtual environment. Even if the control unit is configured with a single CPU or multiple CPUs with a multi-core, similar time division can be performed for each core to ensure processing time for each virtual environment. In the allocation time information, the allocation time of one virtual environment and the allocation time of the next virtual environment for that one virtual environment are defined, and the allocation time of the other virtual environment is set to be from after the management unit obtains a task completion notification to the start of the allocation time of the next virtual environment. Therefore, the end of the allocation time of the other virtual environment is determined (constrained) according to the start of the allocation time of the next virtual environment. This allows the control unit's usage time to be allocated to the allocated time slot of the next-highest virtual environment based on the allocated time slot of the next-highest virtual environment, without being affected by the allocated time slots of other virtual environments. Even if the control unit's usage time is allocated to another virtual environment based on a task completion notification, the control unit's usage time is appropriately allocated to each virtual environment as predetermined in the allocated time information, including the allocated time slot of the next-highest virtual environment, without changing the scheduling based on the allocated time information. This allows efficient execution of programs that use that virtual environment as their operating environment.

(3)本開示の一態様に係る車載ECUは、前記管理部は、前記タスク完了通知を取得した時点から、前記次位の仮想環境の割当時間帯の開始時点までの残余時間を算出し、前記残余時間が、前記他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間以上である場合、前期いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、前記他の仮想環境に割り当てる。 (3) In one embodiment of the in-vehicle ECU of the present disclosure, the management unit calculates the remaining time from the time when the task completion notification is obtained to the start of the allocated time zone of the next virtual environment, and if the remaining time is equal to or greater than a preset time for a program that operates in the other virtual environment, the allocated time zone of the control unit that was allocated to one of the virtual environments in the previous period is assigned to the other virtual environment.

本態様にあたっては、管理部は、いずれかの仮想環境にて実行されるプログラムによるタスク完了通知を取得した際、当該取得時点から次位の仮想環境の割当時間帯の開始時点までの残余時間が、他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間以上である場合、他の仮想環境に対し制御部の利用時間を割り当てる。従って、算出した残余時間に応じて、他の仮想環境に対する適切な割り当てを行うことができる。 In this embodiment, when the management unit receives a task completion notification from a program executed in one of the virtual environments, if the remaining time from the time of the notification to the start of the allocated time slot for the next virtual environment is equal to or greater than a preset time for a program that uses the other virtual environment as its operating environment, the management unit allocates the control unit's usage time to the other virtual environment. Therefore, appropriate allocation to the other virtual environment can be made according to the calculated remaining time.

(4)本開示の一態様に係る車載ECUは、前記管理部は、前記タスク完了通知を取得した時点から、前記次位の仮想環境の割当時間帯の開始時点までの残余時間を算出し、前記残余時間が、前記他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間未満である場合、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、前記他の仮想環境に割り当てることなく、前記いずれかの仮想環境への割り当てを継続する。 (4) In one embodiment of the in-vehicle ECU of the present disclosure, the management unit calculates the remaining time from the time when the task completion notification is obtained to the start of the allocated time zone of the next virtual environment, and if the remaining time is less than a preset time for a program that operates in the other virtual environment, the control unit continues to allocate the allocated time zone of the control unit that was allocated to one of the virtual environments to the one of the virtual environments without allocating it to the other virtual environment.

本態様にあたっては、管理部は、算出した残余時間が他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間未満である場合、制御部の割当時間帯(利用時間)を他の仮想環境に割り当てることなく、前期いずれかの仮想環境への割り当てを継続する。仮想環境を動作環境とするプログラムに対し予め定められている設定時間は、例えば、当該プログラムにおけるタスクの処理に要すると想定される時間(想定処理時間)であるところ、残余時間が設定時間未満である場合、他の仮想環境に割り当てることなく、いずれかの仮想環境への割り当てを継続することにより、管理部が不要な処理を行うことによるオーバヘッドを抑制することができる。 In this embodiment, if the calculated remaining time is less than a preset time for a program that uses another virtual environment as its operating environment, the management unit continues the allocation to one of the virtual environments without allocating the control unit's allocated time zone (usage time) to the other virtual environment. The preset time for a program that uses a virtual environment as its operating environment is, for example, the time estimated to be required to process a task in that program (estimated processing time). If the remaining time is less than the preset time, by continuing the allocation to one of the virtual environments without allocating to the other virtual environment, it is possible to reduce overhead caused by the management unit performing unnecessary processing.

(5)本開示の一態様に係る車載ECUは、前記割当時間情報において定められる仮想環境それぞれに対する割当時間帯に基づく割当周期は、前記いずれかの仮想環境にて実行されるプログラムにおけるタスクの開始周期よりも、短い。 (5) In an embodiment of the in-vehicle ECU of the present disclosure, the allocation period based on the allocated time zone for each virtual environment defined in the allocated time information is shorter than the start period of a task in a program executed in any of the virtual environments.

本態様にあたっては、割当時間情報にて定められる仮想環境の割当周期は、当該仮想環境を動作環境とするプログラムにおけるタスクの開始周期よりも、短い周期(時間)としてある。従って、いずれかの仮想環境に制御部が割り当てられた際、当該仮想環境を動作環境とするプログラムにおけるタスクが開始されないことも想定されるところ、このような場合であってもタスク完了通知に基づき、管理部は、いずれかの仮想環境に割り当てられていた制御部の割当時間帯を、他の仮想環境に割り当てる。これにより、制御部の空き時間を有効活用し、制御部の使用率(CPU使用率)を向上させることができる。 In this embodiment, the allocation period of the virtual environment determined by the allocation time information is a period (time) that is shorter than the start period of the task in the program that uses that virtual environment as its operating environment. Therefore, when a control unit is assigned to a virtual environment, it is expected that a task in the program that uses that virtual environment as its operating environment will not be started. Even in such a case, based on the task completion notification, the management unit assigns the allocation time period of the control unit that was assigned to one of the virtual environments to the other virtual environment. This makes it possible to effectively utilize the free time of the control unit and improve the utilization rate (CPU utilization rate) of the control unit.

(6)本開示の一態様に係る車載ECUは、前記いずれかの仮想環境を動作環境とするプログラムの優先度は、前記他の仮想環境を動作環境とするプログラムの優先度よりも高く、前記優先度は、ISO26262のASIL(Automotive Safety Integrity Level)に基づき決定される。 (6) In an embodiment of the in-vehicle ECU of the present disclosure, the priority of a program that operates in one of the virtual environments is higher than the priority of a program that operates in the other virtual environments, and the priority is determined based on the Automotive Safety Integrity Level (ASIL) of ISO26262.

本態様にあたっては、いずれかの仮想環境を動作環境とするプログラムは、割当時間情報に基づき定常的に実施され、他の仮想環境を動作環境とするプログラムは、当該いずれかの仮想環境を動作環境とするプログラムによるタスク完了通知がされた以降の空き時間を用いて実施される。当該タスク完了通知は、いずれかの仮想環境に対する割当時間帯において常に行われるものではないため、当該他の仮想環境を動作環境とするプログラムは、タスク完了通知に基づき非定常に実施されるものとなる。これに対し、定常的に実施されるプログラムの優先度は、非定常に実施される実施されるプログラムの優先度よりも高いものとしてあり、当該優先度はASIL(Automotive Safety Integrity Level)に基づき決定される。従って、例えば、定常的に実施されるプログラムは、ASIL-DからASIL-Aレベルまでのプログラムとし、非定常に実施されるプログラムは、QMレベルのプログラムとすることにより、個々のプログラムに要求される機能安全を鑑みた制御部の割り当て(スケジューリング)を行いつつ、当該制御部の使用率(CPU使用率)の向上を図ることができる。 In this embodiment, a program that uses one of the virtual environments as its operating environment is executed regularly based on the allocated time information, and a program that uses another virtual environment as its operating environment is executed using the free time after a task completion notification is issued by the program that uses one of the virtual environments. The task completion notification is not always issued during the allocated time period for one of the virtual environments, so the program that uses the other virtual environment as its operating environment is executed non-regularly based on the task completion notification. In contrast, the priority of a program that is executed regularly is higher than the priority of a program that is executed non-regularly, and the priority is determined based on the ASIL (Automotive Safety Integrity Level). Therefore, for example, by setting the programs that are executed regularly to be programs ranging from ASIL-D to ASIL-A levels and the programs that are executed non-regularly to be programs at the QM level, it is possible to allocate (schedule) the control unit in consideration of the functional safety required for each program, while improving the utilization rate (CPU utilization rate) of the control unit.

(7)本開示の一態様に係るプログラムは、車両に搭載され、複数のプログラムを実行するコンピュータに、前記コンピュータの記憶部に記憶されている仮想化オペレーティングシステムを起動することにより、複数の仮想環境を生成し、前記仮想環境を、前記プログラムを実行するにあたっての動作環境とし、前記複数の仮想環境の内のいずれかの仮想環境にて実行されるプログラムにおけるタスク完了通知に基づき、前記いずれかの仮想環境に割り当てられていた前記コンピュータの制御部の割当時間帯を、他の仮想環境に割り当てる。 (7) A program according to one aspect of the present disclosure generates multiple virtual environments by starting a virtualized operating system stored in a memory unit of a computer that is mounted on a vehicle and executes multiple programs, sets the virtual environments as operating environments for executing the programs, and, based on a task completion notification in a program executed in one of the multiple virtual environments, assigns an assigned time zone of the control unit of the computer that was assigned to one of the virtual environments to another virtual environment.

本態様にあたっては、コンピュータを、実行されたプログラムの状態に応じて、他のプログラムにCPU等のハードウェアリソースを効率的に割り当てることができる車載ECUとして機能させることができる。 In this embodiment, the computer can function as an in-vehicle ECU that can efficiently allocate hardware resources such as the CPU to other programs depending on the state of the executed program.

(8)本開示の一態様に係る情報処理方法は、車両に搭載され、複数のプログラムを実行するコンピュータに、前記コンピュータの記憶部に記憶されている仮想化オペレーティングシステムを起動することにより、複数の仮想環境を生成し、前記仮想環境を、前記プログラムを実行するにあたっての動作環境とし、前記複数の仮想環境の内のいずれかの仮想環境にて実行されるプログラムにおけるタスク完了通知に基づき、前記いずれかの仮想環境に割り当てられていた前記コンピュータの制御部の割当時間帯を、他の仮想環境に割り当てる。 (8) An information processing method according to one aspect of the present disclosure generates multiple virtual environments by starting a virtualized operating system stored in a memory unit of a computer mounted on a vehicle and executing multiple programs, sets the virtual environments as operating environments for executing the programs, and, based on a task completion notification in a program executed in one of the multiple virtual environments, allocates an assigned time zone of the control unit of the computer that was assigned to one of the virtual environments to another virtual environment.

本態様にあたっては、コンピュータを、実行されたプログラムの状態に応じて、他のプログラムにCPU等のハードウェアリソースを効率的に割り当てることができる車載ECUとして機能させる情報処理方法を提供することができる。 In this aspect, an information processing method can be provided that causes a computer to function as an in-vehicle ECU that can efficiently allocate hardware resources such as a CPU to other programs depending on the state of the executed program.

[本開示の実施形態の詳細]
本開示をその実施の形態を示す図面に基づいて具体的に説明する。本開示の実施形態に係る車載ECU2を、以下に図面を参照しつつ説明する。なお、本開示はこれらの例示に限定されるものではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。
[Details of the embodiment of the present disclosure]
The present disclosure will be specifically described with reference to the drawings showing the embodiments. An in-vehicle ECU 2 according to an embodiment of the present disclosure will be described below with reference to the drawings. Note that the present disclosure is not limited to these examples, but is indicated by the claims, and is intended to include all modifications within the meaning and scope equivalent to the claims.

(実施形態1)
以下、実施の形態について図面に基づいて説明する。図1は、実施形態1に係る車載ECU2を含む車載システムSの構成を例示する模式図である。図2は、車載ECU2の物理構成を例示するブロック図である。車載システムSは、車両Cに搭載される複数の車載ECU2及び、当該車載ECU2に接続される車載装置3を含む。
(Embodiment 1)
Hereinafter, an embodiment will be described with reference to the drawings. Fig. 1 is a schematic diagram illustrating a configuration of an in-vehicle system S including an in-vehicle ECU 2 according to the first embodiment. Fig. 2 is a block diagram illustrating a physical configuration of the in-vehicle ECU 2. The in-vehicle system S includes a plurality of in-vehicle ECUs 2 mounted on a vehicle C and an in-vehicle device 3 connected to the in-vehicle ECUs 2.

複数の車載ECU2は、車両Cの全体を制御する統合的な車載ECU2(統合ECU)、及び当該統合的な車載ECU2と通信可能に接続され、車載装置3と直接、接続される個別的な車載ECU2(個別ECU)を含むものであってもよい。統合的な車載ECU2は、車外通信装置1を介して、インターネット等の外部ネットワークに接続される外部サーバ100と、通信可能に接続されるものであってもよい。 The multiple on-board ECUs 2 may include an integrated on-board ECU 2 (integrated ECU) that controls the entire vehicle C, and individual on-board ECUs 2 (individual ECUs) that are communicatively connected to the integrated on-board ECU 2 and directly connected to the on-board device 3. The integrated on-board ECU 2 may be communicatively connected to an external server 100 that is connected to an external network such as the Internet via the external communication device 1.

本実施形態において図示においては、統合的な車載ECU2と、複数の個別的な車載ECU2とは、スター状のネットワークトポロジーを形成する車載ネットワーク4によって通信可能に接続され、当該統合的な車載ECU2は、スター状のネットワークトポロジーの中心(センター)に位置して設けられている。更に、隣接する個々の個別的な車載ECU2同士が接続され、ループ状のネットワークトポロジーを構成し、双方向通信を可能として冗長化を図るものであってもよい。 In the illustrated embodiment, the integrated vehicle ECU 2 and multiple individual vehicle ECUs 2 are communicatively connected by an in-vehicle network 4 that forms a star-shaped network topology, and the integrated vehicle ECU 2 is located at the center of the star-shaped network topology. Furthermore, adjacent individual vehicle ECUs 2 may be connected to each other to form a loop-shaped network topology, enabling two-way communication and achieving redundancy.

複数の個別的な車載ECU2は、車両Cにおける各エリアに配置され、イルミネーションランプ等のアクチュエータ30、及びセンサ31等の車載装置3が、シリアルケーブル(じか線)等のワイヤーハーネスにて、直接接続されている。個別的な車載ECU2は、例えば、センサから出力された信号(入力信号)を取得(受信)し、取得した入力信号に基づき生成した要求信号を統合的な車載ECU2に送信する。個別的な車載ECU2は、統合的な車載ECU2から送信された制御信号に基づき、自ECUに直接、接続されたイルミネーションランプ等のアクチュエータ30の駆動制御を行う。 Multiple individual vehicle ECUs 2 are arranged in various areas of the vehicle C, and actuators 30 such as illumination lamps and vehicle devices 3 such as sensors 31 are directly connected to them via a wire harness such as a serial cable (direct wire). The individual vehicle ECUs 2 acquire (receive) signals (input signals) output from sensors, for example, and transmit request signals generated based on the acquired input signals to the integrated vehicle ECU 2. The individual vehicle ECUs 2 control the operation of actuators 30 such as illumination lamps directly connected to their own ECU based on the control signals transmitted from the integrated vehicle ECU 2.

個別的な車載ECU2は、当該個別的な車載ECU2に接続される複数の車載装置3間の通信、又は車載装置3と他の車載ECU2との通信を中継するゲートウェイ又はイーサスイッチ等の車載中継装置として機能する中継制御ECUであってもよい。個別的な車載ECU2は、通信に関する中継に加え、蓄電装置から出力された電力を分配及び中継し、自ECUに接続される車載装置3に供給する電力分配装置としても機能するPLB(Power Lan Box)であってもよい。 The individual vehicle ECU 2 may be a relay control ECU that functions as a gateway or an Ethernet switch or other vehicle relay device that relays communication between multiple vehicle devices 3 connected to the individual vehicle ECU 2, or communication between the vehicle device 3 and other vehicle ECUs 2. The individual vehicle ECU 2 may be a PLB (Power Lan Box) that functions as a power distribution device that distributes and relays power output from a power storage device and supplies it to the vehicle devices 3 connected to the ECU itself, in addition to relaying communication.

統合的な車載ECU2は、個別的な車載ECU2等、他の車載ECU2を介して中継された車載装置3からのデータに基づき、個々の車載装置3への制御信号を生成及び出力するものであり、例えばヴィークルコンピュータ等の中央制御装置である。統合的な車載ECU2は、個別的な車載ECU2等、他の車載ECU2から出力(送信)される要求信号等の情報又はデータに基づき、当該要求信号の対象となるアクチュエータ30を制御するための制御信号を生成し、生成した制御信号を他の車載ECU2に出力(送信)する。本実施形態においては、統合的な車載ECU2(統合ECU)及び個別的な車載ECU2(個別ECU)により車載システムSは構成されるとしたがこれに限定されない。車載システムSは、例えばCAN(Controller Area Network)ゲートウェイ又はイーサスイッチ等の中継装置によってピアツーピアに接続された複数の車載ECU2によって構成されるものであってもよい。 The integrated vehicle ECU 2 generates and outputs control signals to the individual vehicle devices 3 based on data from the vehicle devices 3 relayed via other vehicle ECUs 2, such as individual vehicle ECUs 2, and is a central control device such as a vehicle computer. The integrated vehicle ECU 2 generates a control signal for controlling the actuator 30 that is the target of the request signal based on information or data such as a request signal output (transmitted) from other vehicle ECUs 2, such as individual vehicle ECUs 2, and outputs (transmits) the generated control signal to the other vehicle ECUs 2. In this embodiment, the vehicle system S is configured by the integrated vehicle ECU 2 (integrated ECU) and the individual vehicle ECUs 2 (individual ECUs), but is not limited to this. The vehicle system S may be configured by a plurality of vehicle ECUs 2 connected peer-to-peer by a relay device such as a CAN (Controller Area Network) gateway or an Ethernet switch.

車載装置3は、例えばLiDAR(Light Detection and Ranging)、ライトセンサ、CMOSカメラ、赤外線センサ等の各種センサ31及び、ドアSW(スイッチ)、ランプSW等のスイッチ、ランプ、ドア開閉装置、モータ装置等のアクチュエータ30を含む。 The in-vehicle device 3 includes various sensors 31 such as LiDAR (Light Detection and Ranging), light sensors, CMOS cameras, infrared sensors, etc., and actuators 30 such as switches such as door switches and lamp switches, lamps, door opening/closing devices, motor devices, etc.

外部サーバ100は、例えばインターネット又は公衆回線網等の車外ネットワークに接続されているサーバ等のコンピュータであり、RAM(Random Access Memory)、ROM(Read Only Memory)又はハードディスク等による記憶部を備える。統合的な車載ECU2(統合ECU)は、車外通信装置1と通信可能に接続され、車外通信装置1を介して車外ネットワークを介して接続された外部サーバ100と通信し、外部サーバ100と、車両Cに搭載される他の車載ECU2又は車載装置3との間の通信を中継するものであってもよい。 The external server 100 is a computer such as a server connected to an external network such as the Internet or a public line network, and has a storage unit such as a RAM (Random Access Memory), a ROM (Read Only Memory), or a hard disk. The integrated on-board ECU 2 (integrated ECU) is communicatively connected to the external communication device 1, communicates with the external server 100 connected via the external network via the external communication device 1, and may relay communication between the external server 100 and other on-board ECUs 2 or on-board devices 3 mounted in the vehicle C.

車外通信装置1は、車外通信部(図示せず)及び、統合的な車載ECU2(統合ECU)と通信するための入出力I/F(図示せず)を含む。車外通信部は、4G、LTE(Long Term Evolution/登録商標)、5G、WiFi等の移動体通信のプロトコルを用いて無線通信をするための通信装置であり、車外通信部に接続されたアンテナ11を介して外部サーバ100とデータの送受信を行う。車外通信装置1と外部サーバ100との通信は、例えば公衆回線網又はインターネット等の外部ネットワークNを介して行われる。入出力I/F22は、車載ECU2と、例えばシリアル通信するための通信インターフェイスである。車外通信装置1と車載ECU2とは、入出力I/F及び入出力I/Fに接続されたシリアルケーブル等のワイヤーハーネスを介して相互に通信する。本実施形態では、車外通信装置1は、車載ECU2と別装置とし、入出力I/F等によってこれら装置を通信可能に接続しているが、これに限定されない。車外通信装置1は、車載ECU2の一構成部位として、車載ECU2に内蔵されるものであってもよい。 The vehicle-external communication device 1 includes an external communication unit (not shown) and an input/output I/F (not shown) for communicating with an integrated vehicle-mounted ECU 2 (integrated ECU). The vehicle-external communication unit is a communication device for wireless communication using a mobile communication protocol such as 4G, LTE (Long Term Evolution/registered trademark), 5G, or WiFi, and transmits and receives data to and from an external server 100 via an antenna 11 connected to the vehicle-external communication unit. Communication between the vehicle-external communication device 1 and the external server 100 is performed via an external network N such as a public line network or the Internet. The input/output I/F 22 is a communication interface for, for example, serial communication with the vehicle-mounted ECU 2. The vehicle-external communication device 1 and the vehicle-mounted ECU 2 communicate with each other via the input/output I/F and a wire harness such as a serial cable connected to the input/output I/F. In this embodiment, the vehicle-external communication device 1 is a separate device from the vehicle-mounted ECU 2, and these devices are communicatively connected by the input/output I/F or the like, but is not limited thereto. The external vehicle communication device 1 may be built into the vehicle ECU 2 as one component of the vehicle ECU 2.

車載ECU2(統合EUC、個別ECU)は、制御部20、記憶部21、入出力I/F22、及び車内通信部23を含み、更にHSM(Hardware Security Module)等にて構成される検証部を含むものであってもよい。制御部20は、CPU(Central Processing Unit)又はMPU(Micro Processing Unit)等により構成してあり、記憶部21に予め記憶された制御プログラム及びデータを読み出して実行することにより、種々の制御処理及び演算処理等を行うようにしてある。制御部20は、例えば、シングルコアのシングルCPU、シングルコアのマルチCPU、マルチコアのシングルCPU、及びマルチコアのマルチCPUを含む。制御部20は、CPU等のソフトウェア処理を行うソフトウェア処理部のみに限定されず、FPGA、ASIC又はSOC等のハードウェア処理にて種々の制御処理及び演算処理等を行うハードウェア処理部を含むものであってもよい。 The in-vehicle ECU 2 (integrated EUC, individual ECU) includes a control unit 20, a memory unit 21, an input/output I/F 22, and an in-vehicle communication unit 23, and may further include a verification unit configured with an HSM (Hardware Security Module) or the like. The control unit 20 is configured with a CPU (Central Processing Unit) or an MPU (Micro Processing Unit), and performs various control processes and arithmetic processes by reading and executing control programs and data previously stored in the memory unit 21. The control unit 20 includes, for example, a single-core single CPU, a single-core multi-CPU, a multi-core single CPU, and a multi-core multi-CPU. The control unit 20 is not limited to only a software processing unit that performs software processing such as a CPU, and may include a hardware processing unit that performs various control processes and arithmetic processes by hardware processing such as an FPGA, an ASIC, or an SOC.

記憶部21は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子、又は、これら記憶デバイスの組み合わせにより構成してあり、制御プログラム及び処理時に参照するデータが予め記憶してある。当該制御プログラムは、例えば、各種の車載装置3を制御するためのプログラム(アプリケーション)、又はLiDAR又はCMOSカメラからの出力データ基づき自動化運転を行うための物標認識を行うプログラム(アプリケーション)等の複数のプログラム(アプリケーション)を含む。更に、車載ECU2の記憶部21には、例えば、Hypervisor又はVMware等の仮想オペレーティングシステムが記憶されている。 The storage unit 21 is configured with a volatile memory element such as a RAM (Random Access Memory), a non-volatile memory element such as a ROM (Read Only Memory), an EEPROM (Electrically Erasable Programmable ROM) or a flash memory, or a combination of these storage devices, and stores a control program and data to be referenced during processing in advance. The control program includes a plurality of programs (applications), such as a program (application) for controlling various in-vehicle devices 3, or a program (application) for performing target recognition for automated driving based on output data from a LiDAR or CMOS camera. Furthermore, the storage unit 21 of the in-vehicle ECU 2 stores a virtual operating system, such as a Hypervisor or VMware.

入出力I/F22は、車外通信装置1の入出力I/F22と同様に、例えばシリアル通信するための通信インターフェイスである。入出力I/F22及びシリアルケーブル等のワイヤーハーネスを介して、車載ECU2は、車外通信装置1と通信可能に接続される。 The input/output I/F 22 is a communication interface for, for example, serial communication, similar to the input/output I/F 22 of the external communication device 1. The in-vehicle ECU 2 is communicatively connected to the external communication device 1 via the input/output I/F 22 and a wire harness such as a serial cable.

車内通信部23は、例えばCAN(Controller Area Network)又はイーサネット(Ethernet/登録商標)の通信プロトコルを用いた入出力インターフェイスであり、制御部20は、車内通信部23を介して車載ネットワーク4に接続されている他の車載ECU2と相互に通信する。 The in-vehicle communication unit 23 is an input/output interface that uses a communication protocol such as CAN (Controller Area Network) or Ethernet (registered trademark), and the control unit 20 communicates with other in-vehicle ECUs 2 connected to the in-vehicle network 4 via the in-vehicle communication unit 23.

図3は、車載ECU2の論理構成(仮想ECU)を例示するブロック図である。本実施形態における図示にて車載ECU2の論理構成を例示するものであり、制御部20等によるハードウェア層(物理基盤)を最下層とし、仮想環境にて実行されるプログラム、及び仮想環境管理プログラム等によるソフトウェア層を最上層とした階層構造を例示するブロック図である。 Figure 3 is a block diagram illustrating the logical configuration (virtual ECU) of the vehicle-mounted ECU 2. This is a block diagram illustrating the logical configuration of the vehicle-mounted ECU 2 in the illustration of this embodiment, and is an example of a hierarchical structure in which the hardware layer (physical base) of the control unit 20, etc. is the lowest layer, and the software layer of the programs executed in the virtual environment and the virtual environment management program, etc. is the highest layer.

上述のとおり、車載ECU2の記憶部21には、例えば、Hypervisor又はVMware等の仮想オペレーティングシステムが記憶されており、車載ECU2の制御部20は、仮想オペレーティングシステムを用いて起動することにより、仮想オペレーティングシステム上にて複数の仮想環境(仮想ECU)を構築することができる。各種の車載装置3を制御するためのプログラムは、これら複数の仮想環境のうちのいずれかの仮想環境を動作環境として、実行される。すなわち、これらプログラムは、いずれかの仮想環境(仮想ECU)上にて、実行されるものとなる。仮想環境(仮想ECU)にてプログラムが実行されることにより、当該プログラムの処理内容に応じて単一又は複数のタスクが生成される。当該タスクによって、より細分化又は区分化された処理単位が実行されるものとなる。 As described above, the storage unit 21 of the in-vehicle ECU 2 stores a virtual operating system such as Hypervisor or VMware, and the control unit 20 of the in-vehicle ECU 2 can build multiple virtual environments (virtual ECUs) on the virtual operating system by starting up using the virtual operating system. Programs for controlling various in-vehicle devices 3 are executed using one of these multiple virtual environments as the operating environment. In other words, these programs are executed on one of the virtual environments (virtual ECUs). By executing a program in the virtual environment (virtual ECU), a single or multiple tasks are generated depending on the processing content of the program. The tasks execute processing units that are more finely divided or segmented.

仮想化の方式は、本実施形態の図示のように仮想オペレーティングシステムによって直接的に制御部20等のハードウェアリソースにアクセスするハイパーバイザー方式、又は仮想オペレーティングシステムとハードウェアリソースとの間にLinux(登録商標)等のオペレーティングシステムが介在するホストOS方式であってもよい。又は、コンテナ方式の仮想オペレーティングシステムを用いるものであってもよい。 The virtualization method may be a hypervisor method in which a virtual operating system directly accesses hardware resources such as the control unit 20 as shown in the present embodiment, or a host OS method in which an operating system such as Linux (registered trademark) is interposed between the virtual operating system and the hardware resources. Alternatively, a container-based virtual operating system may be used.

仮想オペレーティングシステムを用いて起動した車載ECU2は、仮想オペレーティングシステムの機能により、複数の仮想環境を構築することができ、複数の仮想環境には、車載ECU2が備える制御部20等のハードウェアリソースが割り当てられる。これらハードウェアリソースが割り当てられた仮想環境それぞれは、仮想的な制御部20(仮想制御部)、記憶部21(仮想記憶部)及び車内通信部23(仮想車内通信部)を備えるものとなり、仮想ECU200として機能する。 The in-vehicle ECU 2 started up using the virtual operating system can create multiple virtual environments using the functions of the virtual operating system, and hardware resources such as the control unit 20 of the in-vehicle ECU 2 are assigned to the multiple virtual environments. Each virtual environment to which these hardware resources are assigned includes a virtual control unit 20 (virtual control unit), memory unit 21 (virtual memory unit), and in-vehicle communication unit 23 (virtual in-vehicle communication unit), and functions as a virtual ECU 200.

仮想ECU200それぞれの仮想記憶部それぞれには、例えばUbuntu(登録商標)等のゲストOS(Operation System)が記憶され、仮想ECU200それぞれはゲストOSを起動し、当該ゲストOSの上でプログラムを実行する。当該ゲストOSは、個々の仮想ECU200に応じて、異なる種類のOSであってもよい。上述のごとく仮想記憶部の実体は、仮想ECU200それぞれに割り当てられた記憶部21の記憶領域であるため、ゲストOSも仮想オペレーティングシステムと同様に記憶部21に記憶されていることは、言うまでもない。コンテナ方式の仮想オペレーティングシステムを用いる場合、ゲストOSを不要とし、当該仮想オペレーティングシステムの上でコンテナ(仮想環境)を生成し、当該コンテナ(仮想環境)上にてプログラムを実行するものであってもよい。 A guest OS (Operating System) such as Ubuntu (registered trademark) is stored in each virtual memory unit of the virtual ECUs 200, and each virtual ECU 200 starts the guest OS and executes a program on the guest OS. The guest OS may be a different type of OS depending on each virtual ECU 200. As described above, the virtual memory unit is actually a storage area of the storage unit 21 assigned to each virtual ECU 200, so it goes without saying that the guest OS is also stored in the storage unit 21 in the same way as the virtual operating system. When using a container-based virtual operating system, a guest OS may be unnecessary, and a container (virtual environment) may be generated on the virtual operating system, and a program may be executed on the container (virtual environment).

仮想オペレーティングシステムを用いて起動した車載ECU2の制御部20は、構築したいずれかの仮想環境(仮想ECU200)のうちの一つの仮想ECU200にて、全ての仮想環境を管理するプログラム(仮想環境管理プログラム)を実行する。すなわち、仮想環境管理プログラムを実行する仮想ECU200は、仮想オペレーティングシステムのコントロールパネルとして機能するものであり、管理部210に相当する。又は、仮想オペレーティングシステム自体が、管理部210としての機能を包含するものであってもよい。 The control unit 20 of the in-vehicle ECU 2, which is started using the virtual operating system, executes a program (virtual environment management program) that manages all virtual environments in one of the virtual environments (virtual ECUs 200) that have been created. In other words, the virtual ECU 200 that executes the virtual environment management program functions as a control panel for the virtual operating system, and corresponds to the management unit 210. Alternatively, the virtual operating system itself may include the function of the management unit 210.

記憶部21には、後述する割当時間テーブル21A(割当時間情報)が記憶されており、管理部210は当該割当時間テーブル21Aに基づき、個々の仮想環境(仮想ECU)に対する制御部20の利用時間の割当(スケジューリング)を行う。 The memory unit 21 stores an allocation time table 21A (allocation time information) described below, and the management unit 210 allocates (schedules) the usage time of the control unit 20 to each virtual environment (virtual ECU) based on the allocation time table 21A.

図4は、仮想ECU200における機能部を例示する機能ブロック図である。図5は、割当時間テーブル21A(割当時間情報)を例示する説明図である。仮想ECU200の仮想制御部(制御部20)は、当該仮想ECU200の仮想記憶部(記憶部21)に記憶されているプログラムを実行することにより、タスク生成部201、及びタスク完了監視部202として機能する。 Figure 4 is a functional block diagram illustrating functional units in virtual ECU 200. Figure 5 is an explanatory diagram illustrating allocation time table 21A (allocation time information). The virtual control unit (control unit 20) of virtual ECU 200 functions as a task generation unit 201 and a task completion monitoring unit 202 by executing a program stored in the virtual memory unit (memory unit 21) of the virtual ECU 200.

仮想オペレーティングシステムを実行する制御部20又は、当該仮想オペレーティングシステムを管理するための仮想ECU200の仮想制御部(制御部20)は、仮想記憶部(記憶部21)に記憶されている仮想環境管理プログラムを実行することにより、仮想オペレーティングシステムのコントロールパネルとして機能し、本実施形態における管理部210に相当する。当該管理部210は、残余時間導出部211、完了判定部212、及び割当実行部213を含む。制御部20が、例えばマルチコアにて構成される場合、当該管理部210(仮想オペレーティングシステムのコントロールパネル)に対し利用時間が割り当てられるコアと、車載装置3等の制御を行うためのプログラムの動作環境となる仮想環境(仮想ECU200)に対し利用時間が割り当てられるコアとは、異なるコアであってもよい。 The control unit 20 that executes the virtual operating system, or the virtual control unit (control unit 20) of the virtual ECU 200 for managing the virtual operating system, executes a virtual environment management program stored in the virtual memory unit (memory unit 21) to function as a control panel of the virtual operating system, and corresponds to the management unit 210 in this embodiment. The management unit 210 includes a remaining time derivation unit 211, a completion determination unit 212, and an allocation execution unit 213. When the control unit 20 is configured with a multi-core, for example, the core to which the usage time is assigned to the management unit 210 (control panel of the virtual operating system) and the core to which the usage time is assigned to the virtual environment (virtual ECU 200), which is the operating environment of the program for controlling the in-vehicle device 3, etc., may be different cores.

本実施形態における図示のとおり、割当時間テーブル21Aに基づき、周期的(定常的)に、制御部20の利用時間が割り当てられる仮想ECU200は、例えば、3つ(VM1、VM2、VM3)としている。管理部210は、例えば記憶部21に記憶されている割当時間情報を参照することにより、これら仮想ECU200(VM1、VM2、VM3)に対し、制御部20を構成するいずれかのコアの利用時間を、割り当てる処理(スケジューリング)を継続して行っている。本実施形態における図示のとおり、管理部210が参照する割当時間情報は、例えば割当時間テーブル21Aとして、テーブル形式(ルックアップテーブル)にて記憶部21に記憶されている。 As shown in the figure in this embodiment, the virtual ECUs 200 to which the utilization time of the control unit 20 is periodically (regularly) allocated based on the allocation time table 21A are, for example, three (VM1, VM2, VM3). The management unit 210 continuously performs a process (scheduling) of allocating the utilization time of any of the cores constituting the control unit 20 to these virtual ECUs 200 (VM1, VM2, VM3) by referring to the allocation time information stored in, for example, the storage unit 21. As shown in the figure in this embodiment, the allocation time information referred to by the management unit 210 is stored in the storage unit 21 in table format (lookup table), for example, as the allocation time table 21A.

割当時間テーブル21Aは、管理項目として、仮想ECU200の項目、割当周期の項目、割当時間の項目、プログラム種別の項目、優先順位を示すASILの項目、タスクの項目、タスクの開始周期の項目、及びタスクの想定処理時間の項目を含む。 The allocation time table 21A includes, as management items, an item for the virtual ECU 200, an item for the allocation period, an item for the allocation time, an item for the program type, an item for the ASIL indicating the priority, an item for the task, an item for the start period of the task, and an item for the expected processing time of the task.

仮想ECU200の項目には、同一の制御部20(コア)を時分割することにより共用する仮想ECU200の名称又は識別子が格納される。 The Virtual ECU 200 item stores the name or identifier of the virtual ECU 200 that shares the same control unit 20 (core) by time sharing.

割当周期の項目には、周期的(定常的)に割当が行われる仮想ECU200における割当周期が、格納される。本実施形態においては、VM1、VM2及びVM3には、当該割当周期の実数が格納されており、VM4においては割当周期の実数は格納されていない(格納値が無い旨を示すnull値が格納)。すなわち、割当周期の実数が格納されている仮想ECU200(VM1、VM2及びVM3)は、周期的(定常的)に制御部20の利用時間が割り当てられる仮想ECU200(仮想環境)に相当する。 The allocation period field stores the allocation period in the virtual ECU 200, which is allocated periodically (steadily). In this embodiment, the actual number of the allocation period is stored in VM1, VM2, and VM3, and the actual number of the allocation period is not stored in VM4 (a null value indicating that no value is stored is stored). In other words, the virtual ECUs 200 (VM1, VM2, and VM3) in which the actual number of the allocation period is stored correspond to the virtual ECUs 200 (virtual environments) to which the usage time of the control unit 20 is allocated periodically (steadily).

割当周期の実数が格納されていない仮想ECU200(VM4)は、非定常的に制御部20の利用時間が割り当てられる仮想ECU200(仮想環境)に相当する。割当時間の項目には、周期的(定常的)に制御部20の利用時間が割り当てられる仮想ECU200において、それぞれの仮想ECU200に割り当てられる割当時間が格納される。これら割当時間の合算値が、割当周期に相当する。 A virtual ECU 200 (VM4) in which the actual number of the allocation period is not stored corresponds to a virtual ECU 200 (virtual environment) to which the use time of the control unit 20 is non-stationarily allocated. The item of allocation time stores the allocation time allocated to each virtual ECU 200 in the virtual ECU 200 to which the use time of the control unit 20 is periodically (stationarily) allocated. The sum of these allocation times corresponds to the allocation period.

プログラム種別の項目には、対応する(同じレコードに格納される)各仮想ECU200(仮想環境)にて実行されるプログラムの種別が格納されている。ASILの項目には、実行されるプログラムの優先度を示す指標として、ASILのレベルが格納される。すなわち当該優先度は、対応する車載装置3及び実行するプログラムの機能に基づいて決定されるものであり、例えばISO26262のASIL(Automotive Safety Integrity Level)に基づいて決定されるものであってもよい。ASILのレベルは、QM、ASIL-A,ASIL-B,ASIL-C,ASIL-Dのレベルに分類される。QMレベルは、ISO26262による機能安全を適用しなくてもよい通常の品質管理である。ASIL-AからDのレベルにおいては、ISO26262による機能安全の適用が必要となるレベルであり、ASIL-AからASIL-Dになるについて、機能安全要件が厳しくなる。すなわち、QMレベルの優先度が最も低く、ASIL-Dレベルの優先度が最も高いとみなすことができる。当該優先度において、周期的(定常的)な割当がされる仮想ECU200(仮想環境)の優先度(ASILのレベル)は、非定常的な割当がされる仮想ECU200(仮想環境)の優先度(ASILのレベル)よりも、高い優先度(ASILのレベル)としてある。本実施形態において、プログラムの優先度を示す指標としてASILを用いるとしたが、これに限定されない。当該プログラムの優先度は、ASILとは別個の値(優先度設定値)により決定されるものであってもよく、当該優先度設定値は、例えば、車載システムSの利用者、管理者又は製造者によって、個々に変更可能に設定されるものであってもよい。 The program type field stores the type of program executed in each corresponding virtual ECU 200 (virtual environment) (stored in the same record). The ASIL field stores the ASIL level as an index indicating the priority of the program to be executed. That is, the priority is determined based on the corresponding in-vehicle device 3 and the function of the program to be executed, and may be determined based on the ASIL (Automotive Safety Integrity Level) of ISO26262, for example. The ASIL level is classified into QM, ASIL-A, ASIL-B, ASIL-C, and ASIL-D. The QM level is normal quality control that does not require the application of functional safety according to ISO26262. At the levels from ASIL-A to D, the application of functional safety according to ISO26262 is required, and the functional safety requirements become stricter as the levels go from ASIL-A to ASIL-D. That is, the priority of the QM level can be considered to be the lowest, and the priority of the ASIL-D level can be considered to be the highest. In this priority, the priority (ASIL level) of the virtual ECU 200 (virtual environment) that is periodically (regularly) assigned is a higher priority (ASIL level) than the priority (ASIL level) of the virtual ECU 200 (virtual environment) that is non-regularly assigned. In this embodiment, the ASIL is used as an index indicating the priority of the program, but this is not limited to this. The priority of the program may be determined by a value (priority setting value) separate from the ASIL, and the priority setting value may be set individually and changeably by, for example, the user, administrator, or manufacturer of the in-vehicle system S.

タスクの項目には、対応するプログラムが生成するタスクの名称が格納されている。タスクの開始周期の項目には、対応するタスクの開始周期が格納されている。タスクそれぞれは、当該開始周期に基づき、実行(起動)される。割当時間情報にて定められる仮想ECU200の割当周期は、当該仮想ECU200(仮想環境)を動作環境とするプログラムにおけるタスクの開始周期よりも、短い周期(時間)としてある。従って、いずれかの仮想ECU200(仮想環境)に制御部20(コア)が割り当てられた際、当該仮想ECU200(仮想環境)を動作環境とするプログラムにおけるタスクが開始されないことも想定される。このような場合であっても後述するタスク完了通知に基づき、管理部210は、いずれかの仮想ECU200(仮想環境)に割り当てられていた制御部20の割当時間帯を、他の仮想ECU200(仮想環境)に割り当てることができる。本実施形態において、割当時間情報にて定められる仮想ECU200の割当周期は、当該仮想ECU200(仮想環境)を動作環境とするプログラムにおけるタスクの開始周期よりも、短い周期(時間)としたが、これに限定されず、当該割当周期と開始周期とは、同じ値(周期)であってもよい。 The task item stores the name of the task generated by the corresponding program. The task start period item stores the start period of the corresponding task. Each task is executed (started) based on the start period. The allocation period of the virtual ECU 200 determined by the allocation time information is a period (time) shorter than the start period of the task in the program whose operating environment is the virtual ECU 200 (virtual environment). Therefore, when the control unit 20 (core) is assigned to any virtual ECU 200 (virtual environment), it is assumed that the task in the program whose operating environment is the virtual ECU 200 (virtual environment) will not be started. Even in such a case, based on a task completion notification described later, the management unit 210 can assign the assigned time period of the control unit 20 assigned to any virtual ECU 200 (virtual environment) to another virtual ECU 200 (virtual environment). In this embodiment, the allocation period of the virtual ECU 200 determined by the allocation time information is a period (time) that is shorter than the start period of a task in a program that uses the virtual ECU 200 (virtual environment) as its operating environment, but this is not limited to this, and the allocation period and the start period may be the same value (period).

タスクの想定処理時間には、対応するタスクを生成し、実行するにあたって必要とされる時間(想定処理時間/コンフィグ設定値)が格納される。当該割当時間テーブル21Aは、管理部210からのみ参照されるものでなく、全ての仮想ECU200の仮想制御部から参照できるように記憶部21にて記憶されており、例えば、全ての仮想ECU200それぞれの仮想記憶部に記憶されているものであってもよい。 The estimated processing time of a task stores the time required to generate and execute the corresponding task (estimated processing time/configuration setting value). The allocation time table 21A is not only referenced by the management unit 210, but is stored in the memory unit 21 so that it can be referenced by the virtual control units of all virtual ECUs 200, and may be stored, for example, in the virtual memory units of all virtual ECUs 200.

本実施形態の図示のとおり、現時点において、周期的(定常的)な割当がされる仮想ECU200の内の一つの仮想ECU200(VM1)に対し、例えば単一のコア(シングルコア)等にて構成される制御部20の利用時間が割り当てられている。仮想ECU200(VM1)のタスク生成部201は、例えば割当時間テーブル21Aを参照し、自仮想ECU200(VM1)における個々のタスクに対し定められている開始周期に基づき、タスクを実行(起動)する。タスク生成部201は、当該タスクを実行(起動)するにあたり、サブプロセス又はスレッドを生成するものであってもよい。 As shown in the diagram of this embodiment, currently, the usage time of the control unit 20, which is configured with, for example, a single core, is allocated to one virtual ECU 200 (VM1) among the virtual ECUs 200 that are periodically (regularly) allocated. The task generation unit 201 of the virtual ECU 200 (VM1) refers to, for example, the allocation time table 21A, and executes (launches) a task based on the start period defined for each task in its own virtual ECU 200 (VM1). The task generation unit 201 may generate a sub-process or a thread when executing (launching) the task.

仮想ECU200(VM1)のタスク完了監視部202は、生成したタスクの実行状態を監視し、当該タスクが完了したか否かを判定する。タスク完了監視部202は、タスクを実行(起動)するために生成したサブプロセス又はスレッドが消滅したことを検知することにより、タスクが完了したと判定するものであってもよい。又は、タスクを実行するためのプロセスから送信される完了シグナルを受信した場合、当該タスクが完了したと判定するものであってもよい。 The task completion monitoring unit 202 of the virtual ECU 200 (VM1) monitors the execution status of the generated task and determines whether the task is completed. The task completion monitoring unit 202 may determine that the task is completed by detecting that a sub-process or thread generated to execute (launch) the task has disappeared. Alternatively, the task completion monitoring unit 202 may determine that the task is completed when it receives a completion signal transmitted from a process for executing the task.

タスク完了監視部202は、タスクが完了したと判定した場合、管理部210に対し、自仮想ECU200に割り当てられている割当時間から、割当が開始された時点から現時点までの経過時間を減算した残余時間の出力を要求する出力要求信号を送信する。タスク完了監視部202は、当該出力要求信号に基づき管理部210が算出した残余時間を取得する。 When the task completion monitoring unit 202 determines that the task is completed, it transmits an output request signal to the management unit 210, requesting the output of the remaining time obtained by subtracting the elapsed time from the start of the allocation to the present time from the allocated time allocated to its own virtual ECU 200. The task completion monitoring unit 202 acquires the remaining time calculated by the management unit 210 based on the output request signal.

タスク完了監視部202は、例えば割当時間テーブル21Aを参照して、直前に完了したタスク以外のタスク(他のタスク)であって、残余時間内にて、実行(起動)すべきタスクがあるか否かを判定する。すなわち、タスク完了監視部202は、割当時間テーブル21Aを参照して、自仮想ECU200(VM1)にて実行される単一又は複数の他のタスクそれぞれの開始周期に基づき決定される次の開始時点それぞれを算出し、算出した開始時点が残余時間内に含まれるタスクが、存在するか否か(有無)を判定する。 The task completion monitoring unit 202, for example, refers to the allocated time table 21A to determine whether there is a task (other task) other than the most recently completed task that needs to be executed (started) within the remaining time. That is, the task completion monitoring unit 202 refers to the allocated time table 21A to calculate each of the next start times determined based on the start period of each of the single or multiple other tasks executed in its own virtual ECU 200 (VM1), and determines whether there is a task (existence or non-existence) whose calculated start time is included in the remaining time.

残余時間内に、開始時点が含まれるタスクが存在する場合、タスク完了監視部202は、タスク完了通知を管理部210に出力(送信)しない。この場合、残余時間内に開始時点が含まれるタスクは、タスク生成部201によって実行(起動)される。残余時間内に、開始時点が含まれるタスクが存在しない場合、タスク完了監視部202は、タスク完了通知を管理部210に出力(送信)する。 If there is a task whose start time falls within the remaining time, the task completion monitoring unit 202 does not output (send) a task completion notification to the management unit 210. In this case, the task whose start time falls within the remaining time is executed (launched) by the task generation unit 201. If there is no task whose start time falls within the remaining time, the task completion monitoring unit 202 outputs (sends) a task completion notification to the management unit 210.

管理部210は、上述のとおり残余時間導出部211、完了判定部212、及び割当実行部213を含む。残余時間導出部211は、仮想ECU200からの要求に応じて、残余時間の出力要求を送信した仮想ECU200に割り当てられている割当時間から、割当が開始された時点から現時点までの経過時間を減算した残余時間を算出し、算出した残余時間を、当該仮想ECU200に出力(送信)する。 As described above, the management unit 210 includes a remaining time derivation unit 211, a completion determination unit 212, and an allocation execution unit 213. In response to a request from a virtual ECU 200, the remaining time derivation unit 211 calculates the remaining time by subtracting the elapsed time from the start of allocation to the current time from the allocated time allocated to the virtual ECU 200 that sent the output request for the remaining time, and outputs (transmits) the calculated remaining time to the virtual ECU 200.

完了判定部212は、仮想ECU200から出力(送信)されるタスク完了通知に応じて、残余時間導出部211が算出した残余時間が他の仮想環境(他の仮想ECU200(VM4))を動作環境とするプログラムの設定時間以上(コンフィグ設定値以上)であるか否かを判定する。完了判定部212は、例えば割当時間テーブル21Aを参照することにより、非定常的に制御部20の利用時間が割り当てられる仮想ECU200(VM4)のプログラムにて実行されるタスクの想定処理時間(プログラムの設定時間:コンフィグ設定値)を抽出し、残余時間が当該想定処理時間以上であるか否かを判定する。残余時間が当該想定処理時間以上である場合、完了判定部212は、割当実行部213に対し、割当指示を示す割当指示信号を出力する。残余時間が当該想定処理時間以上でない場合、完了判定部212は、割当指示信号の出力を行わない。 In response to a task completion notification output (transmitted) from the virtual ECU 200, the completion determination unit 212 determines whether the remaining time calculated by the remaining time derivation unit 211 is equal to or greater than the set time (configuration setting value) of a program that operates in another virtual environment (another virtual ECU 200 (VM4)). The completion determination unit 212 extracts the estimated processing time (program setting time: configuration setting value) of a task executed by a program of the virtual ECU 200 (VM4) to which the usage time of the control unit 20 is non-stationarily allocated, for example, by referring to the allocation time table 21A, and determines whether the remaining time is equal to or greater than the estimated processing time. If the remaining time is equal to or greater than the estimated processing time, the completion determination unit 212 outputs an allocation instruction signal indicating an allocation instruction to the allocation execution unit 213. If the remaining time is not equal to or greater than the estimated processing time, the completion determination unit 212 does not output an allocation instruction signal.

割当実行部213は、完了判定部212から出力された割当指示信号に基づき、現時点において制御部20の利用時間が割り当てられている仮想ECU200(VM1)への割当を中断し、当該仮想ECU200(VM1)よりも優先度の低い(ASILのレベルが低い)、他の仮想ECU200(VM4)に対し、制御部20の利用時間を割り当てる。すなわち、割当実行部213は、割当時間テーブル21Aにて定められているスケジュールにおいて、タスク完了通知を出力した仮想ECU200(VM1)の割当時間内での再スケジュールを行う再スケジュール部として機能する。これにより、当該他の仮想ECU200(VM4)を動作環境とするプログラムにより生成(起動)されるタスクの処理が、実行される。 Based on the allocation instruction signal output from the completion determination unit 212, the allocation execution unit 213 suspends the allocation to the virtual ECU 200 (VM1) to which the usage time of the control unit 20 is currently assigned, and allocates the usage time of the control unit 20 to another virtual ECU 200 (VM4) that has a lower priority (lower ASIL level) than the virtual ECU 200 (VM1). In other words, the allocation execution unit 213 functions as a rescheduling unit that reschedules within the assigned time of the virtual ECU 200 (VM1) that has output the task completion notification in the schedule defined in the assigned time table 21A. This causes the processing of a task generated (activated) by a program that uses the other virtual ECU 200 (VM4) as its operating environment to be executed.

図6は、仮想環境に対する制御部20の割当時間帯に関する説明図である。本実施形態における図示のとおり、周期的(定常的)に制御部20の利用時間が割り当てられる仮想ECU200(VM1、VM2、VM3)に対しては、各仮想ECU200の割当時間(VM1:500μs、VM2:300μs、VM3:200μs)の合算値(1000μs=500μs+300μs+200μs)である割当周期に基づき、制御部20の利用時間の割当が、管理部210によって行われる。また、仮想環境に対する制御部20の割当時間帯を切り替えるにあたり、切替所要時間(マージン)が必要となる場合、当該切替所要時間を加味して、割当周期を設定するものであってもよい。すなわち、割当周期は、合算値に切替所要時間を加算した値(割当周期=合算値+切替所要時間)となるものであってもよい。 6 is an explanatory diagram of the allocation time period of the control unit 20 for the virtual environment. As shown in the figure in this embodiment, for the virtual ECUs 200 (VM1, VM2, VM3) to which the use time of the control unit 20 is periodically (steadily) allocated, the management unit 210 allocates the use time of the control unit 20 based on the allocation period which is the sum (1000μs=500μs+300μs+200μs) of the allocation times of each virtual ECU 200 (VM1: 500μs, VM2: 300μs, VM3: 200μs). In addition, when a switching time (margin) is required to switch the allocation time period of the control unit 20 for the virtual environment, the allocation period may be set by taking into account the switching time. In other words, the allocation period may be a value obtained by adding the switching time to the sum (allocation period=sum + switching time).

図示にて、1回目の周期と、2回目の周期において、仮想ECU200(VM1)における残余時間が、仮想ECU200(VM4)の想定処理時間(コンフィグ設定値)以上であるため、当該残余時間に対し、仮想ECU200(VM4)の割当が行われる。これに対し、1回目の周期における仮想ECU200(VM2)の残余時間と、2回目の周期における仮想ECU200(VM3)の残余時間とに対しては、これら残余時間が、仮想ECU200(VM4)の想定処理時間(コンフィグ設定値)未満であるため、これら残余時間に対する仮想ECU200(VM4)の割当は、行われない。 As shown in the figure, in the first and second cycles, the remaining time in virtual ECU 200 (VM1) is equal to or greater than the expected processing time (configuration setting value) of virtual ECU 200 (VM4), and therefore virtual ECU 200 (VM4) is allocated to the remaining time. In contrast, the remaining time in virtual ECU 200 (VM2) in the first cycle and the remaining time in virtual ECU 200 (VM3) in the second cycle are less than the expected processing time (configuration setting value) of virtual ECU 200 (VM4), and therefore virtual ECU 200 (VM4) is not allocated to these remaining times.

図7は、車載ECU2(仮想ECU200)の制御部20(仮想制御部)の処理を例示するフローチャートである。車載ECU2の制御部20は、例えば車両Cが停止状態(IGスイッチがオフ)から起動状態(IGスイッチがオン)に状態遷移するにあたり車載ECU2(自ECU)が起動(ブート)され、自ECUに実装されているHyperVisor等の仮想化オペレーティングシステムを立ち上げた後、以下の処理を行う。又は、車載ECU2は例えばWakeUp信号を取得(受信)した場合、以下の処理を行うものであってもよい。 Figure 7 is a flowchart illustrating the processing of the control unit 20 (virtual control unit) of the in-vehicle ECU 2 (virtual ECU 200). The control unit 20 of the in-vehicle ECU 2 performs the following processing after the in-vehicle ECU 2 (host ECU) is started (booted) when the vehicle C transitions from a stopped state (IG switch is off) to a running state (IG switch is on) and a virtualized operating system such as HyperVisor implemented in the host ECU is started. Alternatively, the in-vehicle ECU 2 may perform the following processing when it acquires (receives) a WakeUp signal, for example.

以下の処理が、種々の車載装置3の制御等を行うための仮想ECU200(仮想環境)にて実行される場合、当該仮想ECU200(例えばVM1からVM4)の仮想制御部の実体は、車載ECU2の制御部20である。車載装置3の制御等を行うための仮想ECU200の仮想制御部(制御部20)は、タスクが完了したか否かを判定する(S101)。当該車載装置3の制御等を行うための仮想ECU200は、例えば、割当時間テーブル21Aにおいて割当周期が設定されており、当該割当周期に基づき周期的(定常的)に、制御部20の利用時間が割り当てられる(割当時間が付与される)仮想ECU200である。 When the following process is executed in a virtual ECU 200 (virtual environment) for controlling various in-vehicle devices 3, the actual virtual control unit of the virtual ECU 200 (e.g., VM1 to VM4) is the control unit 20 of the in-vehicle ECU 2. The virtual control unit (control unit 20) of the virtual ECU 200 for controlling the in-vehicle devices 3 determines whether the task is completed (S101). The virtual ECU 200 for controlling the in-vehicle devices 3 is, for example, a virtual ECU 200 in which an allocation period is set in an allocation time table 21A, and the usage time of the control unit 20 is allocated (allocated time is given) periodically (regularly) based on the allocation period.

当該仮想ECU200は、例えば、割当時間テーブル21Aにて予め設定されているとおり、単一又は複数のタスクを所定の開始周期に基づき、実行(起動)する。当該タスクを実行(起動)するにあたり、仮想ECU200の仮想制御部(制御部20)は、サブプロセス又はスレッドを生成して、タスクを実行(起動)するものであってもよい。 The virtual ECU 200 executes (starts) a single task or multiple tasks based on a predetermined start period, for example, as set in advance in the allocation time table 21A. When executing (starting) the task, the virtual control unit (control unit 20) of the virtual ECU 200 may generate a sub-process or thread to execute (start) the task.

仮想ECU200の仮想制御部(制御部20)は、実行中(起動中)のタスクがある場合、当該タスクの状態を監視し、タスクが完了したか否かを判定する。タスクの完了判定において、仮想ECU200の仮想制御部(制御部20)は、当該タスクを実行(起動)するために生成したサブプロセス又はスレッドが消滅したことを検知することにより、タスクが完了したと判定するものであってもよい。又は、タスクを実行するためのプロセスから送信される完了シグナルを受信した場合、当該タスクが完了したと判定するものであってもよい。タスクが完了していない場合(S101:NO)、再度S101の処理を実行すべく、ループ処理を行う。 When there is a task being executed (started), the virtual control unit (control unit 20) of the virtual ECU 200 monitors the status of the task and determines whether the task is completed. In determining the completion of the task, the virtual control unit (control unit 20) of the virtual ECU 200 may determine that the task is completed by detecting that a sub-process or thread generated to execute (start) the task has disappeared. Alternatively, the virtual control unit (control unit 20) may determine that the task is completed when it receives a completion signal transmitted from a process for executing the task. If the task is not completed (S101: NO), a loop process is performed to execute the process of S101 again.

タスクが完了した場合(S101:YES)、車載装置3の制御等を行うための仮想ECU200の仮想制御部(制御部20)は、残余時間を取得する(S102)。仮想制御部は、例えば、仮想オペレーティングシステムの管理を担う管理部210と通信(出力要求信号の送信)することにより、自仮想ECU200に割り当てられている割当時間から、割当が開始された時点から現時点までの経過時間を減算した残余時間を、管理部210から取得する。 When the task is completed (S101: YES), the virtual control unit (control unit 20) of the virtual ECU 200 for controlling the in-vehicle device 3, etc., acquires the remaining time (S102). The virtual control unit acquires the remaining time from the management unit 210, which is responsible for managing the virtual operating system, by, for example, communicating with the management unit 210 (sending an output request signal) and subtracting the elapsed time from the start of the allocation to the current time from the allocated time allocated to its own virtual ECU 200.

車載装置3の制御等を行うための仮想ECU200の仮想制御部(制御部20)は、残余時間内に他のタスクを実行するか否かを判定する(S103)。仮想ECU200の仮想制御部(制御部20)は、残余時間内にて、他のタスクを実行するか否か、すなわち実行要否を判定する。仮想ECU200の仮想制御部(制御部20)は、例えば割当時間テーブル21Aを参照して、単一又は複数の他のタスクそれぞれの開始周期に基づき決定される次の開始時点それぞれを算出し、算出した開始時点が残余時間内に含まれるタスクが、存在するか否か(有無)を判定する。 The virtual control unit (control unit 20) of the virtual ECU 200 for controlling the in-vehicle device 3, etc., determines whether or not to execute other tasks within the remaining time (S103). The virtual control unit (control unit 20) of the virtual ECU 200 determines whether or not to execute other tasks within the remaining time, i.e., whether or not they need to be executed. The virtual control unit (control unit 20) of the virtual ECU 200, for example, refers to the allocation time table 21A to calculate each of the next start times determined based on the start period of each of the other single or multiple tasks, and determines whether or not there is a task whose calculated start time is included in the remaining time (existence or non-existence).

残余時間内に、開始時点が含まれるタスクが存在する場合、仮想ECU200の仮想制御部(制御部20)は、当該タスク(他のタスク)の実行(起動)を要する(可能である)と判定する。残余時間内に、開始時点が含まれるタスクが存在しない場合、仮想ECU200の仮想制御部(制御部20)は、当該タスク(他のタスク)の実行(起動)は不要である(不可である)と判定する。 If a task whose start time is included in the remaining time exists, the virtual control unit (control unit 20) of virtual ECU 200 determines that execution (startup) of that task (other task) is required (possible). If no task whose start time is included in the remaining time exists, the virtual control unit (control unit 20) of virtual ECU 200 determines that execution (startup) of that task (other task) is not required (not possible).

残余時間内に他のタスクの実行を要する場合(S103:YES)、車載装置3の制御等を行うための仮想ECU200の仮想制御部(制御部20)は、他のタスクを実行(起動)する(S104)。仮想ECU200の仮想制御部(制御部20)は、他のタスクを実行(起動)した後、再度S101の処理を実行すべく、ループ処理を行う。 If another task needs to be executed within the remaining time (S103: YES), the virtual control unit (control unit 20) of the virtual ECU 200 for controlling the in-vehicle device 3, etc. executes (starts) the other task (S104). After executing (starting) the other task, the virtual control unit (control unit 20) of the virtual ECU 200 performs a loop process to execute the process of S101 again.

残余時間内に他のタスクの実行を要しない(否)場合(S103:NO)、車載装置3の制御等を行うための仮想ECU200の仮想制御部(制御部20)は、タスク完了通知を出力する(S1031)。残余時間内に他のタスクの実行を要しない(否)場合、当該残余時間は、実施的に制御部20の空き時間に相当するものとなる。これに対し、仮想ECU200の仮想制御部(制御部20)は、タスク完了通知を管理部210に出力(送信)することにより、当該残余時間を他の仮想ECU200に割り当て、制御部20における空き時間を有効活用し、制御部20の使用率を向上させることができる。 If no other tasks need to be executed within the remaining time (S103: NO), the virtual control unit (control unit 20) of the virtual ECU 200 for controlling the in-vehicle device 3, etc., outputs a task completion notification (S1031). If no other tasks need to be executed within the remaining time, the remaining time essentially corresponds to the free time of the control unit 20. In response to this, the virtual control unit (control unit 20) of the virtual ECU 200 outputs (transmits) the task completion notification to the management unit 210, thereby allocating the remaining time to another virtual ECU 200, making effective use of the free time in the control unit 20 and improving the utilization rate of the control unit 20.

以下の処理が、仮想オペレーティングシステムのコントロールパネルとして機能する管理部210にて実行される場合、当該管理部210の実体は、車載ECU2の制御部20である。管理部210(制御部20)は、残余時間の出力要求を受けたか否かを判定する(S111)。残余時間の出力要求を受けていない場合(S111:NO)、管理部210(制御部20)は、再度S111の処理を実行すべく、ループ処理を行う。 When the following process is executed by the management unit 210 functioning as a control panel of the virtual operating system, the entity of the management unit 210 is the control unit 20 of the in-vehicle ECU 2. The management unit 210 (control unit 20) determines whether or not a request to output the remaining time has been received (S111). If a request to output the remaining time has not been received (S111: NO), the management unit 210 (control unit 20) performs loop processing to execute the process of S111 again.

残余時間の出力要求を受けた場合(S111:YES)、管理部210(制御部20)は、残余時間を出力する(S112)。管理部210(制御部20)は、例えば割当時間テーブル21Aを参照して、残余時間の出力要求を送信した仮想ECU200に割り当てられている割当時間から、割当が開始された時点から現時点までの経過時間を減算した残余時間を算出し、算出した残余時間を、当該仮想ECU200に出力(送信)する。 When a request to output the remaining time is received (S111: YES), the management unit 210 (control unit 20) outputs the remaining time (S112). The management unit 210 (control unit 20) refers to the allocation time table 21A, for example, to calculate the remaining time by subtracting the elapsed time from the start of allocation to the current time from the allocation time allocated to the virtual ECU 200 that sent the output request for the remaining time, and outputs (transmits) the calculated remaining time to the virtual ECU 200.

管理部210(制御部20)は、タスク完了通知を取得したか否かを判定する(S113)。管理部210(制御部20)は、仮想ECU200の仮想制御部(制御部20)と通信することにより、当該仮想ECU200からタスク完了通知を取得したか否かを判定する。管理部210(制御部20)は、例えば、S111の処理と、S113の処理とを、異なるプロセス又はスレッドによって並行処理するものであってもよい。タスク完了通知を取得していない場合(S113:NO)、管理部210(制御部20)は、再度S113の処理を実行すべく、ループ処理を行う。 The management unit 210 (control unit 20) determines whether or not a task completion notification has been obtained (S113). The management unit 210 (control unit 20) determines whether or not a task completion notification has been obtained from the virtual ECU 200 by communicating with the virtual control unit (control unit 20) of the virtual ECU 200. The management unit 210 (control unit 20) may, for example, process S111 and process S113 in parallel using different processes or threads. If a task completion notification has not been obtained (S113: NO), the management unit 210 (control unit 20) performs loop processing to execute the process of S113 again.

タスク完了通知を取得した場合(S113:YES)、管理部210(制御部20)は、残余時間が他の仮想環境を動作環境とするプログラムの設定時間以上であるか否かを判定する(S114)。管理部210(制御部20)は、S112で算出した残余時間と、当該残余時間の割当の対象となる他の仮想環境(仮想ECU200)を動作環境とするプログラムの設定時間とを、比較することにより、残余時間が当該設定時間以上であるか否かを判定する。当該プログラムの設定時間とは、例えば、当該プログラムによって実行(起動)されるタスクの想定処理時間(コンフィグ設定値)である。 When a task completion notification is obtained (S113: YES), the management unit 210 (control unit 20) determines whether the remaining time is equal to or greater than the set time of a program whose operating environment is another virtual environment (S114). The management unit 210 (control unit 20) compares the remaining time calculated in S112 with the set time of a program whose operating environment is another virtual environment (virtual ECU 200) to which the remaining time is allocated, thereby determining whether the remaining time is equal to or greater than the set time. The set time of the program is, for example, the expected processing time (configuration setting value) of a task executed (launched) by the program.

残余時間が設定時間以上である場合(S114:YES)、管理部210は、他の仮想環境に対し、制御部20の利用時間を割当てる(S115)。当該他の仮想環境(仮想ECU200)を動作環境とするプログラムの優先順位は、タスク完了通知を出力した仮想環境(仮想ECU200)のプログラムの優先順位よりも、低い。当該優先順位は、例えばASILに基づき決定されるものであり、タスク完了通知を出力した仮想環境(仮想ECU200)のASILはD又はCレベルであり、他の仮想環境(仮想ECU200)を動作環境とするプログラムのASILはQMレベルであってもよい。 If the remaining time is equal to or greater than the set time (S114: YES), the management unit 210 allocates the usage time of the control unit 20 to the other virtual environment (S115). The priority of the program whose operating environment is the other virtual environment (virtual ECU 200) is lower than the priority of the program in the virtual environment (virtual ECU 200) that output the task completion notification. The priority is determined based on the ASIL, for example, and the ASIL of the virtual environment (virtual ECU 200) that output the task completion notification may be a D or C level, and the ASIL of the program whose operating environment is the other virtual environment (virtual ECU 200) may be a QM level.

残余時間が設定時間以上である場合、時間分割することにより複数の仮想環境(仮想ECU200)により共用(シェアリング)されている制御部20(コア等)に対し、割り当てられている仮想環境(仮想ECU200)の切り替えを行う。割り当てられている仮想環境(仮想ECU200)の切り替えが行われることにより、他の仮想環境(仮想ECU200)に対し、制御部20(コア等)の利用時間が割り当てられ、他の仮想環境(仮想ECU200)を動作環境とするプログラムにより生成(起動)されるタスクの処理が、実行される。当該他の仮想環境(仮想ECU200)への割当は、タスク完了通知を出力した仮想環境(仮想ECU200)に対する割当時間帯の終了をもって、終了する。 If the remaining time is equal to or greater than the set time, the control unit 20 (core, etc.) that is shared by multiple virtual environments (virtual ECUs 200) is divided into time periods and the assigned virtual environment (virtual ECU 200) is switched. By switching the assigned virtual environment (virtual ECU 200), the usage time of the control unit 20 (core, etc.) is assigned to the other virtual environment (virtual ECU 200), and processing of a task generated (activated) by a program that uses the other virtual environment (virtual ECU 200) as its operating environment is executed. The assignment to the other virtual environment (virtual ECU 200) ends with the end of the assigned time period for the virtual environment (virtual ECU 200) that output the task completion notification.

管理部210(制御部20)は、当該割当時間帯の終了及び、次位の仮想環境(仮想ECU200)への割当の開始等の制御を、例えば割当時間テーブル21Aを参照することにより継続する。従って、タスク完了通知に基づき、優先順位の低い他の仮想環境(仮想ECU200)に制御部20の利用時間が割り当てられた場合であっても、当該次位の仮想環境の割当時間帯も含め、割当時間情報によるスケジューリングを変更することなく、複数の仮想環境への制御部20の利用時間の割当を継続することができる。 The management unit 210 (control unit 20) continues control of the end of the allocated time period and the start of allocation to the next virtual environment (virtual ECU 200), for example, by referring to the allocated time table 21A. Therefore, even if the control unit 20's usage time is allocated to another virtual environment (virtual ECU 200) with a lower priority based on a task completion notification, the control unit 20's usage time can continue to be allocated to multiple virtual environments, including the allocated time period of the next virtual environment, without changing the scheduling based on the allocated time information.

残余時間が設定時間以上でない場合(S114:NO)、すなわち残余時間が設定時間未満である場合、管理部210は、他の仮想環境(仮想ECU200)に対し制御部20の利用時間を割り当てることなく、一連の処理を終了する。すなわち、管理部210は、タスク完了通知を出力したプログラムを動作環境とする仮想環境(仮想ECU200)に対する制御部20の利用時間の割当を維持する。管理部210(制御部20)は、当該仮想環境(仮想ECU200)の割当時間帯の終了及び、次位の仮想環境(仮想ECU200)への割当の開始等の制御を、例えば割当時間テーブル21Aを参照することにより継続する。 If the remaining time is not equal to or greater than the set time (S114: NO), i.e., if the remaining time is less than the set time, the management unit 210 ends the series of processes without allocating the control unit 20's usage time to other virtual environments (virtual ECUs 200). In other words, the management unit 210 maintains the allocation of the control unit 20's usage time to the virtual environment (virtual ECU 200) in which the program that output the task completion notification is the operating environment. The management unit 210 (control unit 20) continues to control the end of the allocated time period for the virtual environment (virtual ECU 200) and the start of allocation to the next virtual environment (virtual ECU 200), for example, by referring to the allocated time table 21A.

(実施形態2)
図8は、実施形態2に係る割当時間テーブル21A(割当時間情報)を例示する説明図である。実施形態2の割当時間テーブル21Aの管理項目は、実施形態1の割当時間テーブル21Aの管理項目に加え、更に割当コアの項目を含む点で、実施形態1と異なる。
(Embodiment 2)
8 is an explanatory diagram illustrating an example of an allocation time table 21A (allocation time information) according to embodiment 2. The management items of the allocation time table 21A of embodiment 2 differ from those of embodiment 1 in that, in addition to the management items of the allocation time table 21A of embodiment 1, the allocation time table 21A further includes an item of an allocation core.

実施形態2においては、制御部20は、例えば複数のコア(マルチコア)により構成されており、Hypervisor等の仮想オペレーティングシステムは、当該複数のコア(図示にてコア1及びコア2によるデュアルコア)それぞれの利用時間を、複数の仮想ECU200(仮想環境)に割り当てる。本実施形態において、制御部20はマルチコアにて構成されるとしたが、これに限定されない。制御部20は、シングルコアのマルチCPUにて構成されるものであってもよい。この場合、割当時間テーブル21Aにおける割当コアの項目は、割当CPUの項目に相当することは、言うまでもない。 In the second embodiment, the control unit 20 is configured with, for example, multiple cores (multi-core), and a virtual operating system such as Hypervisor allocates the usage time of each of the multiple cores (as shown in the figure, a dual core consisting of core 1 and core 2) to multiple virtual ECUs 200 (virtual environments). In this embodiment, the control unit 20 is configured with multiple cores, but this is not limited to this. The control unit 20 may also be configured with multiple single-core CPUs. In this case, it goes without saying that the item for allocated cores in the allocated time table 21A corresponds to the item for allocated CPUs.

割当コアの項目には、対応する仮想ECU200(同じレコードに格納される仮想ECU200)に割り当てられるコアの番号又は識別子が格納される。周期的(定常的)に割当が行われる仮想ECU200(VM1からVM6)に対しては、いずれか一つのコアの番号が、格納される。これにより、各仮想ECU200は、どのコア(コア番号)の利用時間が割り当てられるかが、定められている。本実施形態における図示においては、仮想ECU200(VM1、VM2、VM3)は、コア1に割り当てられ、仮想ECU200(VM4、VM5、VM6)は、コア2に割り当てられている。 The assigned core item stores the number or identifier of the core assigned to the corresponding virtual ECU 200 (virtual ECU 200 stored in the same record). For virtual ECUs 200 (VM1 to VM6) that are assigned periodically (regularly), the number of one of the cores is stored. This determines which core (core number) is assigned to each virtual ECU 200. In the illustration of this embodiment, the virtual ECUs 200 (VM1, VM2, VM3) are assigned to core 1, and the virtual ECUs 200 (VM4, VM5, VM6) are assigned to core 2.

非定常的に制御部20の利用時間が割り当てられる仮想ECU200(VM7)に対しては、複数のコアの番号が格納されるものであってもよい。すなわち、当該非定常的に割当が行われる仮想ECU200(VM7)は、コア1及びコア2に割り当てられている。従って、制御部20を構成するコア1及びコア2において、周期的(定常的)に割当が行われるいずれかの仮想ECU200にて、タスク完了通知がタスク完了監視部202によって出力された場合、当該タスク完了通知がされた以降のコア1又はコア2の空き時間を、非定常的に割当が行われる仮想ECU200(VM7)に割り当てることができる。 For the virtual ECU 200 (VM7) to which the usage time of the control unit 20 is non-regularly allocated, the numbers of multiple cores may be stored. That is, the virtual ECU 200 (VM7) to which the non-regular allocation is performed is assigned to core 1 and core 2. Therefore, when a task completion notification is output by the task completion monitoring unit 202 in any of the virtual ECUs 200 to which the usage time of the control unit 20 is periodically (regularly) allocated among the cores 1 and 2 constituting the control unit 20, the free time of core 1 or core 2 after the task completion notification is output can be assigned to the virtual ECU 200 (VM7) to which the non-regular allocation is performed.

図9は、仮想環境に対する制御部20の割当時間帯に関する説明図である。実施形態1の図6と同様に管理部210(図9では省略)は、周期的(定常的)に割当が行われる仮想ECU200(VM1からVM6)に対し、制御部20を構成するコア1(VM1、VM2及びVM3が共用)及びコア2(VM4、VM5及びVM6が共用)の利用時間を割り当てる。 Figure 9 is an explanatory diagram regarding the allocation time zones of the control unit 20 for the virtual environment. As in Figure 6 of the first embodiment, the management unit 210 (omitted from Figure 9) allocates the usage time of core 1 (shared by VM1, VM2, and VM3) and core 2 (shared by VM4, VM5, and VM6) constituting the control unit 20 to the virtual ECUs 200 (VM1 to VM6) that are allocated periodically (regularly).

コア1においては実施形態1と同様に、仮想ECU200(VM1、VM2、VM3)に対し、各仮想ECU200の割当時間(VM1:500μs、VM2:300μs、VM3:200μs)の合算値(1000μs=500μs+300μs+200μs)である割当周期に基づく制御部20の利用時間の割当が、管理部210によって行われる。コア2においては、仮想ECU200(VM4、VM5、VM6)に対し、各仮想ECU200の割当時間(VM4:300μs、VM5:300μs、VM6:400μs)の合算値(1000μs=300μs+300μs+400μs)である割当周期に基づく制御部20の利用時間の割当が、管理部210によって行われる。 In core 1, similarly to embodiment 1, the management unit 210 allocates the usage time of the control unit 20 to the virtual ECUs 200 (VM1, VM2, VM3) based on an allocation period that is the sum (1000μs=500μs+300μs+200μs) of the allocation times of each virtual ECU 200 (VM1: 500μs, VM2: 300μs, VM3: 200μs). In core 2, the management unit 210 allocates the usage time of the control unit 20 to the virtual ECUs 200 (VM4, VM5, VM6) based on an allocation period that is the sum (1000μs=300μs+300μs+400μs) of the allocation times of each virtual ECU 200 (VM4: 300μs, VM5: 300μs, VM6: 400μs).

コア1においては実施形態1と同様に、1回目の周期と、2回目の周期において、仮想ECU200(VM1)における残余時間が、仮想ECU200(VM7)の想定処理時間(コンフィグ設定値)以上であるため、当該残余時間に対し、仮想ECU200(VM4)の割当が行われる。コア2においては、2回目の周期において、仮想ECU200(VM1)における残余時間が、仮想ECU200(VM5)の想定処理時間(コンフィグ設定値)以上であるため、当該残余時間に対し、仮想ECU200(VM7)の割当が行われる。 In core 1, as in embodiment 1, the remaining time in virtual ECU 200 (VM1) is equal to or greater than the expected processing time (configuration setting value) of virtual ECU 200 (VM7) in the first and second cycles, so virtual ECU 200 (VM4) is allocated for the remaining time. In core 2, the remaining time in virtual ECU 200 (VM1) is equal to or greater than the expected processing time (configuration setting value) of virtual ECU 200 (VM5) in the second cycle, so virtual ECU 200 (VM7) is allocated for the remaining time.

制御部20が例えばマルチコアにて構成される場合であっても、いずれかのコアにて空き時間が発生した際には非定常的に割当が行われる仮想ECU200(VM7)に対し、当該コアの利用時間を割り当てることにより、制御部20の使用率を向上させることができる。本実施形態において、非定常的に割当が行われる仮想ECU200(VM7)の個数は、1つとしているが、これに限定されず、当該非定常的に割当が行われる仮想ECU200の個数は2つ以上とし、当該2つ以上の仮想ECU200に対し順次に制御部20の利用時間を割り当てるものであってもよい。 Even if the control unit 20 is configured with multiple cores, when free time occurs in any of the cores, the utilization rate of the control unit 20 can be improved by allocating the utilization time of that core to a virtual ECU 200 (VM7) that is non-regularly allocated. In this embodiment, the number of virtual ECUs 200 (VM7) that are non-regularly allocated is one, but this is not limited to this, and the number of virtual ECUs 200 that are non-regularly allocated may be two or more, and the utilization time of the control unit 20 may be allocated sequentially to the two or more virtual ECUs 200.

今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。 The embodiments disclosed herein are illustrative in all respects and should not be considered limiting. The scope of the present invention is indicated by the claims, not by the meaning described above, and is intended to include all modifications within the scope and meaning equivalent to the claims.

C 車両
S 車載システム
100 外部サーバ
1 車外通信装置
11 アンテナ
2 車載ECU
20 制御部
21 記憶部
21A 割当時間テーブル
22 入出力I/F
23 車内通信部
200 仮想ECU(仮想環境)
201 タスク生成部
202 タスク完了監視部
210 管理部
211 残余時間導出部
212 完了判定部
213 割当実行部
3 車載装置
30 アクチュエータ(ACT)
31 センサ
4 車載ネットワーク
C Vehicle S In-vehicle system 100 External server 1 External communication device 11 Antenna 2 In-vehicle ECU
20 Control unit 21 Storage unit 21A Allocation time table 22 Input/output I/F
23 In-vehicle communication unit 200 Virtual ECU (virtual environment)
201 Task generation unit 202 Task completion monitoring unit 210 Management unit 211 Remaining time derivation unit 212 Completion determination unit 213 Allocation execution unit 3 In-vehicle device 30 Actuator (ACT)
31 Sensor 4 Vehicle network

Claims (6)

車両に搭載される車載ECUであって、
複数のプログラムを実行する制御部と、
前記制御部によって起動される仮想化オペレーティングシステムが記憶されている記憶部とを備え、
前記仮想化オペレーティングシステムを起動することにより複数の仮想環境が生成され、前記プログラムは前記仮想環境を動作環境とするものであり、
前記仮想化オペレーティングシステムを管理する管理部は、前記複数の仮想環境の内のいずれかの仮想環境にて実行されるプログラムにおけるタスク完了通知に基づき、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、他の仮想環境に割り当て
前記記憶部には、前記複数の仮想環境に対する前記制御部の割当時間帯を定める割当時間情報が記憶されており、
前記割当時間情報は、前記いずれかの仮想環境の割当時間帯と、前記いずれかの仮想環境に対し次位の仮想環境の割当時間帯とを含み、
前記他の仮想環境に割り当てられる割当時間帯は、前記管理部がタスク完了通知を取得した以降から、前記次位の仮想環境の割当時間帯の開始時点までであり、
前記管理部は、
前記タスク完了通知を取得した時点から、前記次位の仮想環境の割当時間帯の開始時点までの残余時間を算出し、
前記残余時間が、前記他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間以上である場合、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、前記他の仮想環境に割り当てる
車載ECU。
An on-board ECU mounted on a vehicle,
A control unit that executes a plurality of programs;
a storage unit in which a virtualized operating system to be started by the control unit is stored,
A plurality of virtual environments are generated by booting the virtualized operating system, and the program operates in the virtual environments;
a management unit that manages the virtualized operating system, based on a task completion notification in a program executed in any one of the plurality of virtual environments, allocates an assigned time period of the control unit that was assigned to any one of the virtual environments to another virtual environment ;
the storage unit stores allocated time information that defines an allocated time period of the control unit for the plurality of virtual environments;
the allocated time information includes an allocated time period of any one of the virtual environments and an allocated time period of a virtual environment that is next in rank to the any one of the virtual environments;
the allocation time slot allocated to the other virtual environment is from after the management unit acquires a task completion notification to a start point of the allocation time slot of the next virtual environment,
The management unit
Calculating the remaining time from the time when the task completion notification is obtained to the start time of the allocated time slot of the next virtual environment;
When the remaining time is equal to or greater than a preset time for a program that operates in the other virtual environment, the allocated time zone of the control unit that has been allocated to any one of the virtual environments is allocated to the other virtual environment.
On-board ECU.
前記管理部は、
前記タスク完了通知を取得した時点から、前記次位の仮想環境の割当時間帯の開始時点までの残余時間を算出し、
前記残余時間が、前記他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間未満である場合、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、前記他の仮想環境に割り当てることなく、前記いずれかの仮想環境への割り当てを継続する
請求項に記載の車載ECU。
The management unit
Calculating the remaining time from the time when the task completion notification is obtained to the start time of the allocated time slot of the next virtual environment;
The vehicle-mounted ECU described in claim 1, wherein when the remaining time is less than a set time predetermined for a program that uses the other virtual environment as its operating environment, the allocated time period of the control unit that was allocated to one of the virtual environments continues to be allocated to the one of the virtual environments without being allocated to the other virtual environment.
前記割当時間情報において定められる仮想環境それぞれに対する割当時間帯に基づく割当周期は、前記いずれかの仮想環境にて実行されるプログラムにおけるタスクの開始周期よりも、短い
請求項1又は請求項2に記載の車載ECU。
An allocation period based on an allocation time period for each virtual environment defined in the allocation time information is shorter than a start period of a task in a program executed in any of the virtual environments.
The vehicle-mounted ECU according to claim 1 or 2 .
前記いずれかの仮想環境を動作環境とするプログラムの優先度は、前記他の仮想環境を動作環境とするプログラムの優先度よりも高く、
前記優先度は、ISO26262のASIL(Automotive Safety Integrity Level)に基づき決定される
請求項1から請求項のいずれか1項に記載の車載ECU。
a priority of a program that uses one of the virtual environments as its operating environment is higher than a priority of a program that uses the other of the virtual environments as its operating environment;
The in-vehicle ECU according to claim 1 , wherein the priority is determined based on an Automotive Safety Integrity Level (ASIL) of ISO26262.
車両に搭載され、複数のプログラムを実行するコンピュータに、
前記コンピュータの記憶部に記憶されている仮想化オペレーティングシステムを起動することにより、複数の仮想環境を生成し、
前記仮想環境を、前記プログラムを実行するにあたっての動作環境とし、
前記複数の仮想環境の内のいずれかの仮想環境にて実行されるプログラムにおけるタスク完了通知に基づき、前記いずれかの仮想環境に割り当てられていた前記コンピュータの制御部の割当時間帯を、他の仮想環境に割り当て
前記記憶部には、前記複数の仮想環境に対する前記制御部の割当時間帯を定める割当時間情報が記憶されており、
前記割当時間情報は、前記いずれかの仮想環境の割当時間帯と、前記いずれかの仮想環境に対し次位の仮想環境の割当時間帯とを含み、
前記他の仮想環境に割り当てられる割当時間帯は、タスク完了通知を取得した以降から、前記次位の仮想環境の割当時間帯の開始時点までであり、
前記タスク完了通知を取得した時点から、前記次位の仮想環境の割当時間帯の開始時点までの残余時間を算出し、
前記残余時間が、前記他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間以上である場合、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、前記他の仮想環境に割り当てる
処理を実行させるプログラム。
A computer installed in a vehicle that runs multiple programs
generating a plurality of virtual environments by booting a virtualized operating system stored in a storage unit of the computer;
The virtual environment is an operating environment for executing the program,
allocating a time slot of the control unit of the computer that has been allocated to any one of the virtual environments to another virtual environment based on a task completion notification in a program executed in any one of the plurality of virtual environments ;
the storage unit stores allocated time information that defines an allocated time period of the control unit for the plurality of virtual environments;
the allocated time information includes an allocated time period of any one of the virtual environments and an allocated time period of a virtual environment that is next in rank to the any one of the virtual environments;
the allocated time period allocated to the other virtual environment is from after the task completion notification is obtained to the start of the allocated time period of the next virtual environment,
Calculating the remaining time from the time when the task completion notification is obtained to the start time of the allocated time slot of the next virtual environment;
When the remaining time is equal to or greater than a preset time for a program that operates in the other virtual environment, the allocated time zone of the control unit that has been allocated to any one of the virtual environments is allocated to the other virtual environment.
A program that executes a process.
車両に搭載され、複数のプログラムを実行するコンピュータに、
前記コンピュータの記憶部に記憶されている仮想化オペレーティングシステムを起動することにより、複数の仮想環境を生成し、
前記仮想環境を、前記プログラムを実行するにあたっての動作環境とし、
前記複数の仮想環境の内のいずれかの仮想環境にて実行されるプログラムにおけるタスク完了通知に基づき、前記いずれかの仮想環境に割り当てられていた前記コンピュータの制御部の割当時間帯を、他の仮想環境に割り当て
前記記憶部には、前記複数の仮想環境に対する前記制御部の割当時間帯を定める割当時間情報が記憶されており、
前記割当時間情報は、前記いずれかの仮想環境の割当時間帯と、前記いずれかの仮想環境に対し次位の仮想環境の割当時間帯とを含み、
前記他の仮想環境に割り当てられる割当時間帯は、タスク完了通知を取得した以降から、前記次位の仮想環境の割当時間帯の開始時点までであり、
前記タスク完了通知を取得した時点から、前記次位の仮想環境の割当時間帯の開始時点までの残余時間を算出し、
前記残余時間が、前記他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間以上である場合、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、前記他の仮想環境に割り当てる
処理を実行させる情報処理方法。
A computer installed in a vehicle that runs multiple programs
generating a plurality of virtual environments by booting a virtualized operating system stored in a storage unit of the computer;
The virtual environment is an operating environment for executing the program,
allocating a time slot of the control unit of the computer that has been allocated to any one of the virtual environments to another virtual environment based on a task completion notification in a program executed in any one of the plurality of virtual environments ;
the storage unit stores allocated time information that defines an allocated time period of the control unit for the plurality of virtual environments;
the allocated time information includes an allocated time period of any one of the virtual environments and an allocated time period of a virtual environment that is next in rank to the any one of the virtual environments;
the allocated time period allocated to the other virtual environment is from after the task completion notification is obtained to the start of the allocated time period of the next virtual environment,
Calculating the remaining time from the time when the task completion notification is obtained to the start time of the allocated time slot of the next virtual environment;
When the remaining time is equal to or greater than a preset time for a program that operates in the other virtual environment, the allocated time zone of the control unit that has been allocated to any one of the virtual environments is allocated to the other virtual environment.
An information processing method for executing a process.
JP2020189749A 2020-11-13 2020-11-13 On-vehicle ECU, program, and information processing method Active JP7468308B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2020189749A JP7468308B2 (en) 2020-11-13 2020-11-13 On-vehicle ECU, program, and information processing method
PCT/JP2021/039196 WO2022102383A1 (en) 2020-11-13 2021-10-25 Onboard ecu, program, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020189749A JP7468308B2 (en) 2020-11-13 2020-11-13 On-vehicle ECU, program, and information processing method

Publications (2)

Publication Number Publication Date
JP2022078814A JP2022078814A (en) 2022-05-25
JP7468308B2 true JP7468308B2 (en) 2024-04-16

Family

ID=81601087

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020189749A Active JP7468308B2 (en) 2020-11-13 2020-11-13 On-vehicle ECU, program, and information processing method

Country Status (2)

Country Link
JP (1) JP7468308B2 (en)
WO (1) WO2022102383A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010170320A (en) 2009-01-22 2010-08-05 Denso Corp Program and control device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013117806A (en) * 2011-12-02 2013-06-13 Mitsubishi Electric Corp Cpu allocation time management device and cpu allocation time management program

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010170320A (en) 2009-01-22 2010-08-05 Denso Corp Program and control device

Also Published As

Publication number Publication date
JP2022078814A (en) 2022-05-25
WO2022102383A1 (en) 2022-05-19

Similar Documents

Publication Publication Date Title
KR102776397B1 (en) Embedded system execution method and device, embedded system and chip
EP2128759B1 (en) Operating system startup control method and information processing apparatus
WO2016039963A2 (en) Resource sharing between two resource allocation systems
JP2011028559A (en) Relay program and electronic control device
JP7447782B2 (en) In-vehicle computer, computer execution method and computer program
WO2019239522A1 (en) Control controller and vehicle control system
JP7463947B2 (en) On-vehicle ECU, program, and information processing method
JP7468308B2 (en) On-vehicle ECU, program, and information processing method
CN112667401B (en) A resource allocation method, system and device
JP7439773B2 (en) In-vehicle computer, computer execution method and computer program
JP7613152B2 (en) In-vehicle device, information processing method, and computer program
JP6803709B2 (en) Vehicle control device and vehicle control system
Mishra et al. Dynamic task scheduling on multicore automotive ECUs
JP7729195B2 (en) In-vehicle device, program, and information processing method
US20240220308A1 (en) In-vehicle apparatus, information processing method, and computer program
CN121681074B (en) Multi-core-based task scheduling method, device, equipment and medium
US20240036941A1 (en) Vehicle-mounted computer, computer execution method, and computer program
JP2009211604A (en) Information processing apparatus, information processing method, program, and storage medium
CN121681074A (en) A multi-core-based task scheduling method, apparatus, device, and medium
CN119718534A (en) Method, apparatus, device and storage medium for managing accelerator
CN119256300A (en) Scheduling method and related device
RS20180001A1 (en) The procedure for configuring the autonomous vehicle in-vehicle system
KR20140071921A (en) Method for operating a real time critical application to a control device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240109

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240226

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240318

R150 Certificate of patent or registration of utility model

Ref document number: 7468308

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150