JP7468308B2 - On-vehicle ECU, program, and information processing method - Google Patents
On-vehicle ECU, program, and information processing method Download PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60R—VEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
- B60R16/00—Electric 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/02—Electric 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation 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.
しかしながら、特許文献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.
[本発明の実施形態の説明]
最初に本開示の実施態様を列挙して説明する。また、以下に記載する実施形態の少なくとも一部を任意に組み合わせてもよい。
[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-
(実施形態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-
複数の車載ECU2は、車両Cの全体を制御する統合的な車載ECU2(統合ECU)、及び当該統合的な車載ECU2と通信可能に接続され、車載装置3と直接、接続される個別的な車載ECU2(個別ECU)を含むものであってもよい。統合的な車載ECU2は、車外通信装置1を介して、インターネット等の外部ネットワークに接続される外部サーバ100と、通信可能に接続されるものであってもよい。
The multiple on-
本実施形態において図示においては、統合的な車載ECU2と、複数の個別的な車載ECU2とは、スター状のネットワークトポロジーを形成する車載ネットワーク4によって通信可能に接続され、当該統合的な車載ECU2は、スター状のネットワークトポロジーの中心(センター)に位置して設けられている。更に、隣接する個々の個別的な車載ECU2同士が接続され、ループ状のネットワークトポロジーを構成し、双方向通信を可能として冗長化を図るものであってもよい。
In the illustrated embodiment, the
複数の個別的な車載ECU2は、車両Cにおける各エリアに配置され、イルミネーションランプ等のアクチュエータ30、及びセンサ31等の車載装置3が、シリアルケーブル(じか線)等のワイヤーハーネスにて、直接接続されている。個別的な車載ECU2は、例えば、センサから出力された信号(入力信号)を取得(受信)し、取得した入力信号に基づき生成した要求信号を統合的な車載ECU2に送信する。個別的な車載ECU2は、統合的な車載ECU2から送信された制御信号に基づき、自ECUに直接、接続されたイルミネーションランプ等のアクチュエータ30の駆動制御を行う。
Multiple
個別的な車載ECU2は、当該個別的な車載ECU2に接続される複数の車載装置3間の通信、又は車載装置3と他の車載ECU2との通信を中継するゲートウェイ又はイーサスイッチ等の車載中継装置として機能する中継制御ECUであってもよい。個別的な車載ECU2は、通信に関する中継に加え、蓄電装置から出力された電力を分配及び中継し、自ECUに接続される車載装置3に供給する電力分配装置としても機能するPLB(Power Lan Box)であってもよい。
The
統合的な車載ECU2は、個別的な車載ECU2等、他の車載ECU2を介して中継された車載装置3からのデータに基づき、個々の車載装置3への制御信号を生成及び出力するものであり、例えばヴィークルコンピュータ等の中央制御装置である。統合的な車載ECU2は、個別的な車載ECU2等、他の車載ECU2から出力(送信)される要求信号等の情報又はデータに基づき、当該要求信号の対象となるアクチュエータ30を制御するための制御信号を生成し、生成した制御信号を他の車載ECU2に出力(送信)する。本実施形態においては、統合的な車載ECU2(統合ECU)及び個別的な車載ECU2(個別ECU)により車載システムSは構成されるとしたがこれに限定されない。車載システムSは、例えばCAN(Controller Area Network)ゲートウェイ又はイーサスイッチ等の中継装置によってピアツーピアに接続された複数の車載ECU2によって構成されるものであってもよい。
The
車載装置3は、例えばLiDAR(Light Detection and Ranging)、ライトセンサ、CMOSカメラ、赤外線センサ等の各種センサ31及び、ドアSW(スイッチ)、ランプSW等のスイッチ、ランプ、ドア開閉装置、モータ装置等のアクチュエータ30を含む。
The in-
外部サーバ100は、例えばインターネット又は公衆回線網等の車外ネットワークに接続されているサーバ等のコンピュータであり、RAM(Random Access Memory)、ROM(Read Only Memory)又はハードディスク等による記憶部を備える。統合的な車載ECU2(統合ECU)は、車外通信装置1と通信可能に接続され、車外通信装置1を介して車外ネットワークを介して接続された外部サーバ100と通信し、外部サーバ100と、車両Cに搭載される他の車載ECU2又は車載装置3との間の通信を中継するものであってもよい。
The
車外通信装置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
車載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
記憶部21は、RAM(Random Access Memory)等の揮発性のメモリ素子又は、ROM(Read Only Memory)、EEPROM(Electrically Erasable Programmable ROM)若しくはフラッシュメモリ等の不揮発性のメモリ素子、又は、これら記憶デバイスの組み合わせにより構成してあり、制御プログラム及び処理時に参照するデータが予め記憶してある。当該制御プログラムは、例えば、各種の車載装置3を制御するためのプログラム(アプリケーション)、又はLiDAR又はCMOSカメラからの出力データ基づき自動化運転を行うための物標認識を行うプログラム(アプリケーション)等の複数のプログラム(アプリケーション)を含む。更に、車載ECU2の記憶部21には、例えば、Hypervisor又はVMware等の仮想オペレーティングシステムが記憶されている。
The
入出力I/F22は、車外通信装置1の入出力I/F22と同様に、例えばシリアル通信するための通信インターフェイスである。入出力I/F22及びシリアルケーブル等のワイヤーハーネスを介して、車載ECU2は、車外通信装置1と通信可能に接続される。
The input/output I/
車内通信部23は、例えばCAN(Controller Area Network)又はイーサネット(Ethernet/登録商標)の通信プロトコルを用いた入出力インターフェイスであり、制御部20は、車内通信部23を介して車載ネットワーク4に接続されている他の車載ECU2と相互に通信する。
The in-
図3は、車載ECU2の論理構成(仮想ECU)を例示するブロック図である。本実施形態における図示にて車載ECU2の論理構成を例示するものであり、制御部20等によるハードウェア層(物理基盤)を最下層とし、仮想環境にて実行されるプログラム、及び仮想環境管理プログラム等によるソフトウェア層を最上層とした階層構造を例示するブロック図である。
Figure 3 is a block diagram illustrating the logical configuration (virtual ECU) of the vehicle-mounted
上述のとおり、車載ECU2の記憶部21には、例えば、Hypervisor又はVMware等の仮想オペレーティングシステムが記憶されており、車載ECU2の制御部20は、仮想オペレーティングシステムを用いて起動することにより、仮想オペレーティングシステム上にて複数の仮想環境(仮想ECU)を構築することができる。各種の車載装置3を制御するためのプログラムは、これら複数の仮想環境のうちのいずれかの仮想環境を動作環境として、実行される。すなわち、これらプログラムは、いずれかの仮想環境(仮想ECU)上にて、実行されるものとなる。仮想環境(仮想ECU)にてプログラムが実行されることにより、当該プログラムの処理内容に応じて単一又は複数のタスクが生成される。当該タスクによって、より細分化又は区分化された処理単位が実行されるものとなる。
As described above, the
仮想化の方式は、本実施形態の図示のように仮想オペレーティングシステムによって直接的に制御部20等のハードウェアリソースにアクセスするハイパーバイザー方式、又は仮想オペレーティングシステムとハードウェアリソースとの間にLinux(登録商標)等のオペレーティングシステムが介在するホストOS方式であってもよい。又は、コンテナ方式の仮想オペレーティングシステムを用いるものであってもよい。
The virtualization method may be a hypervisor method in which a virtual operating system directly accesses hardware resources such as the
仮想オペレーティングシステムを用いて起動した車載ECU2は、仮想オペレーティングシステムの機能により、複数の仮想環境を構築することができ、複数の仮想環境には、車載ECU2が備える制御部20等のハードウェアリソースが割り当てられる。これらハードウェアリソースが割り当てられた仮想環境それぞれは、仮想的な制御部20(仮想制御部)、記憶部21(仮想記憶部)及び車内通信部23(仮想車内通信部)を備えるものとなり、仮想ECU200として機能する。
The in-
仮想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
仮想オペレーティングシステムを用いて起動した車載ECU2の制御部20は、構築したいずれかの仮想環境(仮想ECU200)のうちの一つの仮想ECU200にて、全ての仮想環境を管理するプログラム(仮想環境管理プログラム)を実行する。すなわち、仮想環境管理プログラムを実行する仮想ECU200は、仮想オペレーティングシステムのコントロールパネルとして機能するものであり、管理部210に相当する。又は、仮想オペレーティングシステム自体が、管理部210としての機能を包含するものであってもよい。
The
記憶部21には、後述する割当時間テーブル21A(割当時間情報)が記憶されており、管理部210は当該割当時間テーブル21Aに基づき、個々の仮想環境(仮想ECU)に対する制御部20の利用時間の割当(スケジューリング)を行う。
The
図4は、仮想ECU200における機能部を例示する機能ブロック図である。図5は、割当時間テーブル21A(割当時間情報)を例示する説明図である。仮想ECU200の仮想制御部(制御部20)は、当該仮想ECU200の仮想記憶部(記憶部21)に記憶されているプログラムを実行することにより、タスク生成部201、及びタスク完了監視部202として機能する。
Figure 4 is a functional block diagram illustrating functional units in
仮想オペレーティングシステムを実行する制御部20又は、当該仮想オペレーティングシステムを管理するための仮想ECU200の仮想制御部(制御部20)は、仮想記憶部(記憶部21)に記憶されている仮想環境管理プログラムを実行することにより、仮想オペレーティングシステムのコントロールパネルとして機能し、本実施形態における管理部210に相当する。当該管理部210は、残余時間導出部211、完了判定部212、及び割当実行部213を含む。制御部20が、例えばマルチコアにて構成される場合、当該管理部210(仮想オペレーティングシステムのコントロールパネル)に対し利用時間が割り当てられるコアと、車載装置3等の制御を行うためのプログラムの動作環境となる仮想環境(仮想ECU200)に対し利用時間が割り当てられるコアとは、異なるコアであってもよい。
The
本実施形態における図示のとおり、割当時間テーブル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
割当時間テーブル21Aは、管理項目として、仮想ECU200の項目、割当周期の項目、割当時間の項目、プログラム種別の項目、優先順位を示すASILの項目、タスクの項目、タスクの開始周期の項目、及びタスクの想定処理時間の項目を含む。
The allocation time table 21A includes, as management items, an item for the
仮想ECU200の項目には、同一の制御部20(コア)を時分割することにより共用する仮想ECU200の名称又は識別子が格納される。
The
割当周期の項目には、周期的(定常的)に割当が行われる仮想ECU200における割当周期が、格納される。本実施形態においては、VM1、VM2及びVM3には、当該割当周期の実数が格納されており、VM4においては割当周期の実数は格納されていない(格納値が無い旨を示すnull値が格納)。すなわち、割当周期の実数が格納されている仮想ECU200(VM1、VM2及びVM3)は、周期的(定常的)に制御部20の利用時間が割り当てられる仮想ECU200(仮想環境)に相当する。
The allocation period field stores the allocation period in the
割当周期の実数が格納されていない仮想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
プログラム種別の項目には、対応する(同じレコードに格納される)各仮想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-
タスクの項目には、対応するプログラムが生成するタスクの名称が格納されている。タスクの開始周期の項目には、対応するタスクの開始周期が格納されている。タスクそれぞれは、当該開始周期に基づき、実行(起動)される。割当時間情報にて定められる仮想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
タスクの想定処理時間には、対応するタスクを生成し、実行するにあたって必要とされる時間(想定処理時間/コンフィグ設定値)が格納される。当該割当時間テーブル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
本実施形態の図示のとおり、現時点において、周期的(定常的)な割当がされる仮想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
仮想ECU200(VM1)のタスク完了監視部202は、生成したタスクの実行状態を監視し、当該タスクが完了したか否かを判定する。タスク完了監視部202は、タスクを実行(起動)するために生成したサブプロセス又はスレッドが消滅したことを検知することにより、タスクが完了したと判定するものであってもよい。又は、タスクを実行するためのプロセスから送信される完了シグナルを受信した場合、当該タスクが完了したと判定するものであってもよい。
The task
タスク完了監視部202は、タスクが完了したと判定した場合、管理部210に対し、自仮想ECU200に割り当てられている割当時間から、割当が開始された時点から現時点までの経過時間を減算した残余時間の出力を要求する出力要求信号を送信する。タスク完了監視部202は、当該出力要求信号に基づき管理部210が算出した残余時間を取得する。
When the task
タスク完了監視部202は、例えば割当時間テーブル21Aを参照して、直前に完了したタスク以外のタスク(他のタスク)であって、残余時間内にて、実行(起動)すべきタスクがあるか否かを判定する。すなわち、タスク完了監視部202は、割当時間テーブル21Aを参照して、自仮想ECU200(VM1)にて実行される単一又は複数の他のタスクそれぞれの開始周期に基づき決定される次の開始時点それぞれを算出し、算出した開始時点が残余時間内に含まれるタスクが、存在するか否か(有無)を判定する。
The task
残余時間内に、開始時点が含まれるタスクが存在する場合、タスク完了監視部202は、タスク完了通知を管理部210に出力(送信)しない。この場合、残余時間内に開始時点が含まれるタスクは、タスク生成部201によって実行(起動)される。残余時間内に、開始時点が含まれるタスクが存在しない場合、タスク完了監視部202は、タスク完了通知を管理部210に出力(送信)する。
If there is a task whose start time falls within the remaining time, the task
管理部210は、上述のとおり残余時間導出部211、完了判定部212、及び割当実行部213を含む。残余時間導出部211は、仮想ECU200からの要求に応じて、残余時間の出力要求を送信した仮想ECU200に割り当てられている割当時間から、割当が開始された時点から現時点までの経過時間を減算した残余時間を算出し、算出した残余時間を、当該仮想ECU200に出力(送信)する。
As described above, the
完了判定部212は、仮想ECU200から出力(送信)されるタスク完了通知に応じて、残余時間導出部211が算出した残余時間が他の仮想環境(他の仮想ECU200(VM4))を動作環境とするプログラムの設定時間以上(コンフィグ設定値以上)であるか否かを判定する。完了判定部212は、例えば割当時間テーブル21Aを参照することにより、非定常的に制御部20の利用時間が割り当てられる仮想ECU200(VM4)のプログラムにて実行されるタスクの想定処理時間(プログラムの設定時間:コンフィグ設定値)を抽出し、残余時間が当該想定処理時間以上であるか否かを判定する。残余時間が当該想定処理時間以上である場合、完了判定部212は、割当実行部213に対し、割当指示を示す割当指示信号を出力する。残余時間が当該想定処理時間以上でない場合、完了判定部212は、割当指示信号の出力を行わない。
In response to a task completion notification output (transmitted) from the
割当実行部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
図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
図示にて、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
以下の処理が、種々の車載装置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-
当該仮想ECU200は、例えば、割当時間テーブル21Aにて予め設定されているとおり、単一又は複数のタスクを所定の開始周期に基づき、実行(起動)する。当該タスクを実行(起動)するにあたり、仮想ECU200の仮想制御部(制御部20)は、サブプロセス又はスレッドを生成して、タスクを実行(起動)するものであってもよい。
The
仮想ECU200の仮想制御部(制御部20)は、実行中(起動中)のタスクがある場合、当該タスクの状態を監視し、タスクが完了したか否かを判定する。タスクの完了判定において、仮想ECU200の仮想制御部(制御部20)は、当該タスクを実行(起動)するために生成したサブプロセス又はスレッドが消滅したことを検知することにより、タスクが完了したと判定するものであってもよい。又は、タスクを実行するためのプロセスから送信される完了シグナルを受信した場合、当該タスクが完了したと判定するものであってもよい。タスクが完了していない場合(S101:NO)、再度S101の処理を実行すべく、ループ処理を行う。
When there is a task being executed (started), the virtual control unit (control unit 20) of the
タスクが完了した場合(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
車載装置3の制御等を行うための仮想ECU200の仮想制御部(制御部20)は、残余時間内に他のタスクを実行するか否かを判定する(S103)。仮想ECU200の仮想制御部(制御部20)は、残余時間内にて、他のタスクを実行するか否か、すなわち実行要否を判定する。仮想ECU200の仮想制御部(制御部20)は、例えば割当時間テーブル21Aを参照して、単一又は複数の他のタスクそれぞれの開始周期に基づき決定される次の開始時点それぞれを算出し、算出した開始時点が残余時間内に含まれるタスクが、存在するか否か(有無)を判定する。
The virtual control unit (control unit 20) of the
残余時間内に、開始時点が含まれるタスクが存在する場合、仮想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
残余時間内に他のタスクの実行を要する場合(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
残余時間内に他のタスクの実行を要しない(否)場合(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
以下の処理が、仮想オペレーティングシステムのコントロールパネルとして機能する管理部210にて実行される場合、当該管理部210の実体は、車載ECU2の制御部20である。管理部210(制御部20)は、残余時間の出力要求を受けたか否かを判定する(S111)。残余時間の出力要求を受けていない場合(S111:NO)、管理部210(制御部20)は、再度S111の処理を実行すべく、ループ処理を行う。
When the following process is executed by the
残余時間の出力要求を受けた場合(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
管理部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
タスク完了通知を取得した場合(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
残余時間が設定時間以上である場合、時間分割することにより複数の仮想環境(仮想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
残余時間が設定時間以上でない場合(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
(実施形態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
実施形態2においては、制御部20は、例えば複数のコア(マルチコア)により構成されており、Hypervisor等の仮想オペレーティングシステムは、当該複数のコア(図示にてコア1及びコア2によるデュアルコア)それぞれの利用時間を、複数の仮想ECU200(仮想環境)に割り当てる。本実施形態において、制御部20はマルチコアにて構成されるとしたが、これに限定されない。制御部20は、シングルコアのマルチCPUにて構成されるものであってもよい。この場合、割当時間テーブル21Aにおける割当コアの項目は、割当CPUの項目に相当することは、言うまでもない。
In the second embodiment, the
割当コアの項目には、対応する仮想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 (
非定常的に制御部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
図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
コア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
コア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
制御部20が例えばマルチコアにて構成される場合であっても、いずれかのコアにて空き時間が発生した際には非定常的に割当が行われる仮想ECU200(VM7)に対し、当該コアの利用時間を割り当てることにより、制御部20の使用率を向上させることができる。本実施形態において、非定常的に割当が行われる仮想ECU200(VM7)の個数は、1つとしているが、これに限定されず、当該非定常的に割当が行われる仮想ECU200の個数は2つ以上とし、当該2つ以上の仮想ECU200に対し順次に制御部20の利用時間を割り当てるものであってもよい。
Even if the
今回開示された実施形態はすべての点で例示であって、制限的なものではないと考えられるべきである。本発明の範囲は、上記した意味ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内でのすべての変更が含まれることが意図される。 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-
20
23 In-
201
31
Claims (6)
複数のプログラムを実行する制御部と、
前記制御部によって起動される仮想化オペレーティングシステムが記憶されている記憶部とを備え、
前記仮想化オペレーティングシステムを起動することにより複数の仮想環境が生成され、前記プログラムは前記仮想環境を動作環境とするものであり、
前記仮想化オペレーティングシステムを管理する管理部は、前記複数の仮想環境の内のいずれかの仮想環境にて実行されるプログラムにおけるタスク完了通知に基づき、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、他の仮想環境に割り当て、
前記記憶部には、前記複数の仮想環境に対する前記制御部の割当時間帯を定める割当時間情報が記憶されており、
前記割当時間情報は、前記いずれかの仮想環境の割当時間帯と、前記いずれかの仮想環境に対し次位の仮想環境の割当時間帯とを含み、
前記他の仮想環境に割り当てられる割当時間帯は、前記管理部がタスク完了通知を取得した以降から、前記次位の仮想環境の割当時間帯の開始時点までであり、
前記管理部は、
前記タスク完了通知を取得した時点から、前記次位の仮想環境の割当時間帯の開始時点までの残余時間を算出し、
前記残余時間が、前記他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間以上である場合、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、前記他の仮想環境に割り当てる
車載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.
前記タスク完了通知を取得した時点から、前記次位の仮想環境の割当時間帯の開始時点までの残余時間を算出し、
前記残余時間が、前記他の仮想環境を動作環境とするプログラムに対し予め定められている設定時間未満である場合、前記いずれかの仮想環境に割り当てられていた前記制御部の割当時間帯を、前記他の仮想環境に割り当てることなく、前記いずれかの仮想環境への割り当てを継続する
請求項1に記載の車載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から請求項3のいずれか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.
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)
| 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)
| 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 |
-
2020
- 2020-11-13 JP JP2020189749A patent/JP7468308B2/en active Active
-
2021
- 2021-10-25 WO PCT/JP2021/039196 patent/WO2022102383A1/en not_active Ceased
Patent Citations (1)
| 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 |