WO2024048001A1 - In-vehicle system and control method for in-vehicle system - Google Patents

In-vehicle system and control method for in-vehicle system Download PDF

Info

Publication number
WO2024048001A1
WO2024048001A1 PCT/JP2023/021700 JP2023021700W WO2024048001A1 WO 2024048001 A1 WO2024048001 A1 WO 2024048001A1 JP 2023021700 W JP2023021700 W JP 2023021700W WO 2024048001 A1 WO2024048001 A1 WO 2024048001A1
Authority
WO
WIPO (PCT)
Prior art keywords
information processing
processing device
ecu
virtual
priority
Prior art date
Application number
PCT/JP2023/021700
Other languages
French (fr)
Japanese (ja)
Inventor
俊平 高木
Original Assignee
住友電気工業株式会社
株式会社オートネットワーク技術研究所
住友電装株式会社
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 住友電気工業株式会社, 株式会社オートネットワーク技術研究所, 住友電装株式会社 filed Critical 住友電気工業株式会社
Publication of WO2024048001A1 publication Critical patent/WO2024048001A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]

Definitions

  • This disclosure relates to an in-vehicle system and a method for controlling the in-vehicle system.
  • This application claims priority based on Japanese Application No. 2022-138903 filed on September 1, 2023, and all contents described in the said Japanese application are hereby incorporated by reference.
  • a vehicle is provided with a plurality of ECUs (Electronic Control Units) that are control devices for controlling various parts of the vehicle.
  • ECUs Electronic Control Units
  • An ECU is essentially a computer. Therefore, the ECU is capable of interrupt processing and can appropriately respond to emergencies.
  • the ECU was originally used to control the engine. However, as vehicle equipment becomes more electronic, ECUs are being used in various locations. For example, the ECU is also responsible for collecting information from various sensors installed in the vehicle. The ECU is used to determine the driving state of the vehicle, control the brakes, control electrical equipment, and also for lane keeping systems, inter-vehicle distance control systems, etc.
  • Patent Document 1 One proposal for solving these problems is disclosed in Patent Document 1.
  • the technology disclosed in Patent Document 1 provides an ECU that executes a task with a virtual device driver that allows external devices to be used transparently.
  • this virtual device driver is also migrated to the destination ECU. It is said that by doing this, the external device can also be used transparently in the destination ECU.
  • this migration is performed while the ECU is in operation. Such migration is called “live migration.” All migrations described in this specification are live migrations, and are simply referred to as “migrations" for the purpose of brevity.
  • An in-vehicle system is an in-vehicle system including an information processing device cluster including a first information processing device and a second information processing device that can communicate with each other, the first information processing device and the second information processing device being able to communicate with each other.
  • Each of the information processing devices includes computer hardware and a virtualization platform running on the computer hardware, and the in-vehicle system further includes one or more virtualization platforms of the first information processing device and the second information processing device.
  • the controller includes a controller for operating a virtual machine, and the controller monitors the usage status of computer hardware resources in the first information processing device and the second information processing device, and depending on the usage status of the hardware resources, Change the configuration of multiple virtual machines in real time.
  • FIG. 1 is a block diagram schematically showing the configuration of an ECU to which virtualization technology is applied.
  • FIG. 2 is a schematic diagram for explaining an ECU cluster.
  • FIG. 3 is a schematic diagram for explaining migration of virtual ECUs in an ECU cluster.
  • FIG. 4 is a block diagram showing an example of the arrangement of controllers that control the ECU cluster.
  • FIG. 5 is a block diagram showing another example of the arrangement of controllers that control the ECU cluster.
  • FIG. 6 is a schematic diagram illustrating an example of the contents of a configuration (setting) file specifying the operating destination used in the embodiment.
  • FIG. 7 is a schematic diagram showing an example of the contents of a priority configuration file used in the embodiment.
  • FIG. 1 is a block diagram schematically showing the configuration of an ECU to which virtualization technology is applied.
  • FIG. 2 is a schematic diagram for explaining an ECU cluster.
  • FIG. 3 is a schematic diagram for explaining migration of virtual ECUs in an ECU cluster.
  • FIG. 4 is
  • FIG. 8 is a schematic diagram showing an example of the contents of a configuration file for specifying initial resources used in the embodiment.
  • FIG. 9 is a schematic diagram for explaining migration of virtual machines between different ECUs.
  • FIG. 10 is a schematic diagram for explaining reduction in used resources (expansion of usable resources) in a single ECU.
  • FIG. 11 is a block diagram showing the hardware configuration of the in-vehicle system and ECU according to this disclosure.
  • FIG. 12 is a flowchart showing the control structure of a program for resource management executed by the controller of the in-vehicle system according to the embodiment.
  • FIG. 13 is a flowchart showing a control structure of a computer program that implements the process for starting the virtual machine shown in FIG. 12.
  • FIG. 12 is a flowchart showing the control structure of a computer program that implements the process for starting the virtual machine shown in FIG. 12.
  • FIG. 14 is a flowchart showing a control structure of a computer program that implements the resource optimization process shown in FIG. 12.
  • FIG. 15 is a flowchart showing the control structure of a computer program that implements the migration shown in FIG. 14.
  • FIG. 16 is a flowchart showing the control structure of a computer program that implements the resource reduction process shown in FIG. 14.
  • Patent Document 1 The technology disclosed in Patent Document 1 mentioned above is load distribution at the task level of applications.
  • the load is distributed among a plurality of virtual ECUs operating on the ECU.
  • Such methods cannot reduce the load on the ECU itself on which the virtual machine is operating.
  • An object of this disclosure is to provide an in-vehicle system and a control method that can dynamically control the load of an information processing device on which a virtual machine is running.
  • An in-vehicle system is an in-vehicle system including an information processing device cluster including a first information processing device and a second information processing device that can communicate with each other, the first information processing device
  • Each of the information processing devices and the second information processing device includes computer hardware and a virtualization infrastructure that operates on the computer hardware, and the in-vehicle system further includes, in the virtualization infrastructure of the first information processing device and the second information processing device,
  • the controller includes a controller for operating one or more virtual machines, the controller monitors the usage status of hardware resources in the first information processing device and the second information processing device, and depending on the usage status of the hardware resources, Change the configuration of one or more virtual machines in real time.
  • a first information processing device and a second information processing device are separately provided in one information processing device cluster.
  • a controller operates one or more virtual machines in each of these information processing devices.
  • the controller monitors the usage status of hardware resources in the first information processing device and the second information processing device, and changes the configuration of the virtual machine in real time according to the usage status of the hardware resources.
  • the load on the information processing device on which the virtual machine is running can be dynamically controlled. Since this load control can be executed independently of the load control in other information processing device clusters, dynamic control of the virtual machine load in the in-vehicle system can be easily performed.
  • the controller is capable of communicating with the first information processing device and the second information processing device included in the information processing device cluster, and is independent of the first information processing device and the second information processing device.
  • the controller device may include a controller device provided in the controller.
  • a controller device is provided independently from both the first information processing device and the second information processing device, and the controller device functions as a controller. As a result, the controller device is not affected by the dynamic control of the load on the information processing device, and dynamic control of the load on the information processing device for executing the virtual machine in the in-vehicle system can be stably performed.
  • the controller may include a virtual controller executed on the virtualization infrastructure of the first information processing device.
  • the controller is realized as a virtual controller on the virtualization infrastructure of the first information processing device. There is no need to separately provide hardware for executing the controller, so the cost of the in-vehicle device can be kept low and maintenance can be facilitated.
  • the controller includes a layout configuration recording unit that records layout configuration information that defines a layout configuration of one or more virtual machines, and a first information processing device. and monitors the operating status of the second information processing device, and determines the placement of one or more virtual machines within the information processing device cluster in real time so that the one or more virtual machines operate stably. If so, it may include a placement control section for changing the location.
  • the placement configuration of virtual machines is provided separately from the placement control unit.
  • changing the arrangement of virtual machines it is only necessary to change the recorded contents of the arrangement configuration section, and there is no need to change the function of the arrangement control section. As a result, the arrangement of virtual machines can be easily changed.
  • the placement configuration information specifies, among one or more virtual machines, a virtual machine to be operated on an information processing device that is a specific operating destination and an information processing device that is a specific operating destination.
  • Priority information that specifies the priority when allocating hardware resources for one or more virtual machines
  • Initialization of hardware resources when starting one or more virtual machines The information may include at least any two of initial resource information specifying allocation, operating destination specification information, priority information, and initial resource information.
  • the operating destination designation information For example, it is possible to prevent a virtual machine that needs to be operated on a specific information processing device from being moved to another information processing device.
  • priority information hardware resources are preferentially allocated to virtual machines that are more important to the in-vehicle system.
  • the in-vehicle system can stably provide predetermined functions.
  • initial resource information is used, the placement of virtual machines can be quickly determined when the in-vehicle system is started. There is no need to adjust the placement of virtual machines after startup, reducing the time required to start up the in-vehicle system.
  • the placement configuration information specifies, among one or more virtual machines, a virtual machine to be operated on an information processing device that is a specific operating destination and an information processing device that is a specific operating destination. and priority information that specifies the priority when allocating hardware resources for one or more virtual machines, where the priority is the highest first priority. and a second priority lower than the first priority.
  • the operation destination specification information indicates that the virtual machine can be moved to the second information processing device, and the priority is
  • the information processing apparatus may include an operation destination control unit that selects a virtual machine having a second priority and moves the virtual machine to the second information processing apparatus.
  • a virtual machine that is moved from the first information processing device to the second information processing device when a hardware resource shortage is detected in the first information processing device is capable of being moved to the second information processing device, and 2 priority is assigned.
  • the placement control unit further monitors the usage status of hardware resources in the first information processing device and the second information processing device, and after the operation destination control unit moves the virtual machine.
  • the priority level is set to 2nd priority among the virtual machines running on the information processing device where the hardware resource tightness was detected. It may also include a resource reduction unit that reduces allocation of hardware resources to a certain virtual machine.
  • the in-vehicle system may include a plurality of information processing device clusters.
  • a method for controlling an in-vehicle system is a method for controlling an in-vehicle system including an information processing device cluster including a first information processing device and a second information processing device that can communicate with each other.
  • each of the first information processing device and the second information processing device includes computer hardware and a virtualization platform operating on the computer hardware
  • the control method includes a computer controlling the first information processing device and the second information processing device.
  • the method includes the step of changing the configuration of one or more virtual machines in real time in response to detection of hardware resource shortage in one information processing device.
  • a first information processing device and a second information processing device are separately provided in one information processing device cluster.
  • a computer operates one or more virtual machines in each of these information processing devices.
  • the computer monitors the usage status of hardware resources in the first information processing device and the second information processing device, and changes the configuration of the virtual machine in real time according to the usage status of the hardware resources.
  • the load on the information processing device on which the virtual machine is running can be dynamically controlled. Since this load control can be executed independently of the load control in other information processing device clusters, dynamic control of the virtual machine load in the in-vehicle system can be easily performed.
  • FIG. 1 shows a schematic configuration of an ECU 42 according to a first embodiment of this disclosure.
  • the ECU 42 includes a physical hardware layer 60 including computer hardware, a virtualization infrastructure layer 62 built on the physical hardware layer 60, and one or more components operating in the virtualization infrastructure layer 62. It includes a virtual machine layer 64 that includes a virtual machine (virtual ECU).
  • the virtualization infrastructure layer 62 uses a hardware resource called the physical hardware layer 60.
  • Each virtual ECU executes the same tasks as each conventional ECU. All of these virtual ECUs operate in the same virtual operating environment as the conventional operating environment, which is provided by the virtualization infrastructure layer 62. Therefore, the OS and each application executed by the virtual ECU are the same as the OS and applications executed by a conventional single ECU.
  • ECU Cluster As shown in FIG. 1, one ECU can operate multiple virtual ECUs. However, when a plurality of virtual ECUs are operated on each ECU, there is a possibility that the load on a particular ECU becomes excessive. It is necessary to avoid such situations from occurring.
  • An ECU cluster refers to a group consisting of a plurality of ECUs, each of which operates one or more virtual ECUs.
  • the ECU cluster defines a range of destinations when a virtual ECU is migrated (moved) as will be described later. That is, a virtual ECU operating in an ECU within a certain ECU cluster can be migrated to another ECU within the same ECU cluster, but is not migrated to an ECU in another ECU cluster.
  • a controller will be provided for this purpose.
  • an ECU cluster is formed by a plurality of ECUs (for example, a first ECU 110 and a second ECU 112) that are smaller in size and have lower performance than the ECU 100 shown in the upper part.
  • a plurality of virtual ECUs operate in each of the first ECU 110 and the second ECU 112. Although the performance of the ECU here is inferior to that of the ECU 100, by employing an ECU cluster as shown in the lower part of FIG. 2, it is possible to provide computation resources comparable to those in the upper part of FIG.
  • FIG. 3 describes migration in the configuration shown in the lower part of FIG. 2.
  • in-vehicle ECU cluster 140 includes first ECU 150 and second ECU 152.
  • the first ECU 150 and the physical hardware layer 170 can communicate with each other via an in-vehicle network (not shown).
  • an in-vehicle network not shown.
  • the resources of the first ECU 150 are tight, if the resources of the second ECU 152 are available, one of the virtual ECUs operating in the first ECU 150 is migrated 176 to the second ECU 152.
  • By migrating the virtual ECU resources of the first ECU 150 are freed up, and stable operation of other virtual ECUs operating in the first ECU 150 can be maintained. That is, it is possible to prevent problems from occurring in the operation of the virtual ECU due to tight resources.
  • one in-vehicle ECU is used for the synchronization processing of state information by the synchronization processing unit 154, the monitoring of the usage status of resources of the physical hardware layers 170 and 172 in the first ECU 150 and the second ECU 152, and the execution of migration.
  • a controller is provided in the cluster.
  • FIG. 4 shows a first example of the arrangement of the controllers.
  • this in-vehicle system 200 includes a first ECU 220 and a second ECU 224 that can communicate with each other via an in-vehicle network 222.
  • a sensor 230 and the like are connected to the first ECU 220, for example.
  • the first ECU 220 is provided with a controller 240 that dynamically controls the configuration of the virtual ECU in the in-vehicle system 200.
  • Controller 240 operates as a virtual machine like other virtual ECUs. That is, controller 240 can be called a virtual controller.
  • a sensor 230 and the like are connected to the first ECU 220. Therefore, the virtual ECU in which tasks for processing information from these sensors 230 and the like are running must reside in the first ECU 220 and cannot be migrated to the second ECU 224.
  • a vehicle body control signal line 232 and the like are connected to the second ECU 224. Therefore, the task for controlling the vehicle body must function in the virtual ECU operating on the second ECU 224 and cannot be migrated to the first ECU 220.
  • the controller 240 has a storage unit 242 for storing such constraints regarding the arrangement of the virtual ECUs and conditions regarding how the virtual ECUs are arranged in the first ECU 220 and the second ECU 224 when the in-vehicle system 200 is started. .
  • the storage unit 242 holds such conditions in the form of a configuration file, and reads the conditions when the controller 240 is started.
  • the configuration will be referred to as a "config” and the configuration file will be referred to as a "config file.” An example of the contents of the configuration file will be described later.
  • FIG. 5 shows another example of the arrangement of the controller.
  • the in-vehicle system 300 includes an in-vehicle network 322, a first ECU 320 and a second ECU 324 that can communicate with each other via the in-vehicle network 322, and each can host one or more virtual ECUs; It includes a controller ECU 326 which is a controller device that is capable of communicating with the in-vehicle network 322 and the second ECU 324 via the network 322 and is provided independently from these.
  • controller ECU 326 includes a storage section 342 similar to storage section 242 shown in FIG.
  • a controller 340 implemented by a program is operating.
  • Controller ECU 326 has a storage unit 342 for storing configuration files. Unlike the first ECU 320 and the second ECU 324, the controller ECU 326 does not use virtualization technology. The controller ECU 326 operates as an independent ECU as in the past.
  • the storage units 242 and 342 store three types of configuration files. These are a destination specification config, a priority config, and an initial resource specification config.
  • the operation destination specification config 370 lists the ECUs each of which should operate for all virtual ECUs.
  • the virtual machine A (actually specified by the identifier of the virtual machine A) operates in the first ECU 220 and cannot be migrated to the second ECU 224.
  • Virtual machine B operates in the second ECU 224 and cannot be migrated to the first ECU 220.
  • virtual machine C and virtual machine D it is shown that no such ECU is specified.
  • Virtual machine C and virtual machine D can both operate on either the first ECU 220 or the second ECU 224, and therefore can be migrated.
  • the information "not specified” is written in the operation destination specification configuration 370 for the virtual machines C and D, but this disclosure is not limited to such a form. For example, it may be determined that virtual ECUs that are not listed in the destination designation configuration 370 are designated as "not specified" as the default. However, in this case, it is necessary to be able to grasp all the virtual ECUs to be activated in some way. For example, a configuration file listing the identifiers of all virtual ECUs may be provided separately.
  • the ECU can be specified using the ECU name, identifier, or address. Each ECU may be associated with a predetermined symbol or number and designated by that symbol or number. Prepare a vector with elements equal to the number of ECUs, associate each element with the ECU, set the value of the corresponding element to "0" for ECUs where the virtual ECU can operate, and set the value of the corresponding element to "0" for ECUs that cannot operate.
  • the value of the corresponding element may be set to, for example, "1" and specified by that vector, or the array of elements of the vector may be viewed as a binary number and specified using that value. In this case, the value may be expressed in octal or hexadecimal notation.
  • FIG. 7 shows an example of the contents of the priority configuration 372.
  • priority config 372 stores the priority of each virtual ECU.
  • the functions realized by the virtual ECU include functions that require high reliability, functions that are necessary for the vehicle but do not require high reliability, and functions that are desirable but are not essential for vehicle control.
  • infotainment functions those with relatively low priority cannot be said to be the original functions of the vehicle and are not essential.
  • the priority config 372 describes the priority for each virtual ECU.
  • FIG. 8 shows an example of the contents of the initial resource specification configuration 374.
  • the initial resource specification configuration 374 That is, when the in-vehicle system is started, initial allocation of resources to each virtual ECU is executed according to the description in the initial resource designation configuration 374.
  • the initial resource specification configuration 374 includes physical resources (the number of CPU (Central Processing Unit) cores, memory size, etc.) to be allocated when each virtual ECU is started. It is described for each ECU. As will be described later, the controller refers to the contents of this initial resource specification configuration 374 and determines the optimal arrangement of virtual ECUs. Note that after the in-vehicle system is started, the arrangement of the virtual ECUs changes dynamically depending on the usage status of resources in each ECU. Therefore, in this embodiment, the initial resource designation configuration 374 shown in FIG. 8 is only used to determine the placement of the virtual ECU at the time of starting the in-vehicle system. Of course, the initial resource specification configuration 374 can also be used to dynamically change the resource placement while maintaining the initial placement as much as possible.
  • physical resources the number of CPU (Central Processing Unit) cores, memory size, etc.
  • the controller performs two types of processing, migration and resource reduction, on the virtual ECU after the in-vehicle system is started. These will be explained below.
  • Migration refers to moving a virtual ECU operating in a certain ECU to another ECU within the same ECU cluster.
  • the operations of other virtual ECUs in the ECU cluster are not stopped, but the virtual ECU to be migrated is stopped for a moment (about several milliseconds). Therefore, migration should not be performed on virtual ECUs that require high reliability.
  • a virtual ECU for which the operating destination ECU is specified cannot be migrated. Therefore, in this embodiment, the following restrictions are provided.
  • virtual ECUs that are of low importance and do not depend on devices can be actively migrated. As a result, the load related to each ECU can be distributed, and stable operation of the virtual ECU can be realized in each ECU.
  • in-vehicle ECU cluster 400 includes first ECU 410 and second ECU 412.
  • a virtual machine A is running in the first ECU 410.
  • Its resource occupancy rate is 30%. No other virtual ECUs are operating in the first ECU 410. Therefore, free resources are 70%.
  • the "resource occupancy rate” is a concept that combines the CPU occupancy rate and the memory occupancy rate. How to calculate the resource occupancy rate differs depending on the designer's idea.
  • the controller determines the virtual ECU to be migrated so that the distribution of resources after migration is as leveled as possible. That is, in the example shown in FIG. 9, the virtual machine B420 is migrated 422 from the second ECU 412 to the first ECU 410. As a result, the free resources of the first ECU 410 decrease by 30%, but the resources are not strained, and the free resources of the second ECU 412 increase to 45%, making it possible to stably maintain the operation of the virtual machine C.
  • the controller executes a process of reducing resource allocation to the virtual ECU (resource reduction process).
  • Virtual ECU with "high” priority...Resources can be used without restrictions. Not subject to resource reduction Virtual ECUs with medium priority...Resources can be used without restrictions. Not subject to resource reduction Virtual ECUs with "low” priority...Resources can be used as long as there are resources. However, when resources are tight, resources are subject to reduction.
  • FIG. 10 shows an outline of the resource allocation process.
  • the resource occupancy rate by virtual machine A with a high priority is as high as 60%, and as a result, the free resource 440 becomes 5%, which is less than the threshold value, and resource strain is detected.
  • Virtual machine A may request further resources.
  • the other ECUs do not have sufficient free resources and the virtual machine B, which has a low priority, cannot be migrated to the other ECUs.
  • the amount of free resources 442 is increased to a threshold value or more ( For example, 20%), an attempt is made to resolve the resource strain.
  • one method for reducing allocated resources is to reduce the number of allocated cores.
  • techniques include so-called memory ballooning, memory swapping, and memory compression.
  • FIG. 11 shows, in block diagram form, the hardware configuration that implements the in-vehicle system 450 according to this embodiment.
  • in-vehicle system 450 includes an in-vehicle network 462, and a first ECU cluster 452, a second ECU cluster 454, and a third ECU cluster 456, all of which are connected to the in-vehicle network 462.
  • These clusters may have different specific configurations (the number of ECUs, the number of operating virtual machines, etc.), but the basic configuration is common. Therefore, the configuration and operation of the first ECU cluster 452 will be described below.
  • the first ECU cluster 452 includes an ECU 460 connected to the in-vehicle network 462 and one or more ECUs 466 connected to the in-vehicle network 462.
  • the ECU 460 and each of the plurality of ECUs 466 are of the same standard.
  • the ECU 460 can be used as an ECU that provides a virtual infrastructure, and can also be used as a controller ECU.
  • the ECU 460 is assumed to be a controller ECU, and the virtual ECUs are assumed to operate in a plurality of ECUs 466.
  • the ECU 460 is essentially a computer, and includes a CPU 482, a main storage device 484, an auxiliary storage device 486, an input/output I/F (Interface) 488, and an in-vehicle network communication section 490, all of which are communicably connected to each other. bus 480.
  • the input/output I/F 488 receives signals from various devices 464 such as a camera, CAN (Controller Area Network) signals, and the like.
  • the in-vehicle network communication unit 490 is an I/F for the in-vehicle network 462 for the ECU 460.
  • ECU 460 can communicate with all other ECUs belonging to the plurality of ECUs 466 via in-vehicle network communication section 490 and in-vehicle network 462.
  • the program executed by the CPU 482 is stored in the auxiliary storage device 486.
  • CPU 482 executes a program, it reads the program from a specified address in auxiliary storage device 486.
  • the CPU 482 loads the program into the main storage device 484, reads and executes instructions from the specified address.
  • the CPU 482 decodes the read instructions.
  • the CPU 482 reads data from the address specified by the instruction, performs the operation specified by the decoding result, and stores the result at the address specified by the instruction.
  • the CPU 482 has a program counter (not shown) and updates its contents according to the execution results of instructions.
  • the CPU 482 reads a new instruction from the address in the main storage device 484 specified by the updated program counter and executes it. By executing these processes, the CPU 482 realizes the functions defined by the program.
  • this embodiment assumes that the CPU 482 has multiple cores and is also capable of executing speculative instructions. As a result, various processes can be executed at high speed.
  • the entity of the virtual ECU is a file installed in the auxiliary storage device 486.
  • the virtualization program which is also installed in the auxiliary storage device 486, is loaded into the main storage device 484 and executed by the CPU 482.
  • the virtualization program reads the virtual ECU file and emulates the CPU according to its contents, thereby realizing the virtual ECU.
  • a type of virtualization program called a hypervisor that directly provides access to the computer's hardware resources without going through the host OS.
  • a hypervisor that directly provides access to the computer's hardware resources without going through the host OS.
  • a virtualization program running on the host OS may be used.
  • the controller is assumed to be an application that runs on a host CPU, not in a virtualized environment, in the controller ECU 326, which is a dedicated computer.
  • This program is activated when the controller ECU 326 is activated and a controller program (hereinafter referred to as "controller program") is loaded into memory during the activation sequence.
  • controller program a controller program
  • This program repeatedly executes the process described below, and detects and executes any processing requests related to maintaining the virtual machine (such as requests for migration and resource reduction) in real time.
  • the real-time execution referred to here refers to so-called real-time processing in information processing technology. Real-time processing is a concept that is contrasted with batch processing, and refers to processing immediately when a processing request occurs.
  • the controller program secures and initializes a storage area, initializes various control variables, etc., and then reads the virtual ECU operating destination designation configuration 370 (FIG. 6).
  • the process includes step 500, step 502 of reading the virtual ECU's priority configuration 372 (FIG. 7), and step 504 of reading the virtual ECU's initial resource specification configuration 374 (FIG. 8).
  • the controller program stores the information read from these configuration files in each variable within the program.
  • This program further includes, after step 504, step 506 of activating all virtual ECUs.
  • step 506 the information read in steps 500, 502, and 504 described above is required.
  • This program further includes, after step 506, step 508 of optimizing the resources allocated to each virtual ECU. Step 508 is executed repeatedly while the on-vehicle system is operating.
  • This program further includes step 510 of terminating all virtual ECUs and terminating the execution of the controller program after the in-vehicle system is instructed to stop and the process of step 508 is completed.
  • step 506 of activating the virtual ECU includes a step 530 of extracting all virtual ECU placement patterns specified by the operating destination specification config 370, and a step 530 of extracting all virtual ECU placement patterns specified by the operation destination specification configuration 370, and a Step 532 of narrowing down the layout pattern to a layout pattern that minimizes the number of high-priority machines.
  • This program further includes step 534 of calculating the resource usage rate in each ECU for each of the placement patterns remaining in step 532 based on the contents of the initial resource specification config 374.
  • the resource usage rate referred to here is a concept that combines the CPU usage rate and the memory usage rate.
  • This program further includes a step 536 in which the flow of control is branched depending on whether there is an arrangement pattern in which both the CPU usage rate and the memory usage rate calculated in step 534 are equal to or less than a specified value.
  • the specified value here refers to both the first specified value, which is the specified value of the memory usage rate, and the second specified value, which is the specified value of the memory usage rate.
  • This program further includes a step 538 in which, when the determination in step 536 is negative, the flow of control is branched depending on whether there is an arrangement pattern in which the CPU usage rate is equal to or less than a third specified value; and a determination in step 538. is negative, branching the flow of control according to whether or not there is an arrangement pattern in which the memory usage rate is equal to or less than a fourth specified value.
  • the third specified value is the same as the first specified value in step 536. However, the two do not necessarily have to be the same. For example, the third specified value may be less than or equal to the first specified value.
  • the fourth specified value is the same as the second specified value, they need not be the same. For example, the fourth specified value may be less than or equal to the second specified value.
  • this program narrows down the layout patterns to those that meet the conditions specified in these steps, step 542, and selects all ECUs from the remaining layout patterns in step 542. and step 544 of selecting an arrangement pattern with the smallest difference in CPU usage between the two.
  • the program further includes a step 546 that allocates the virtual ECUs to each ECU according to the placement pattern selected in step 544, activates all virtual ECUs, and ends step 506.
  • step 540 processing in the case where an appropriate placement for the virtual ECU is not found is executed in step 548.
  • step 548 for example, the configuration file may be changed so that the virtual ECU with low priority is not activated, and step 506 may be executed again.
  • step 506 may be executed again.
  • the "difference" in the "placement pattern with the smallest difference in CPU usage rate” in step 544 is the CPU usage rate in each of the layout patterns after calculating the CPU usage rate in each layout pattern for all ECUs. Any of the range (difference between maximum and minimum value), average deviation, or variance may be used.
  • step 508 in FIG. 12 includes step 600 of monitoring the resource usage rate of each ECU, and control according to whether or not there is an ECU whose resources are strained as a result of the monitoring in step 600.
  • step 602 of branching the flow of the flow. The determination in step 602 becomes positive, for example, when the CPU usage rate of a certain ECU exceeds a specified value or the memory usage rate exceeds a specified value. If the determination in step 602 is negative, control returns to step 600 and resource monitoring is performed again.
  • This program further includes step 604, when the determination in step 602 is positive, migrating any of the virtual ECUs operating in the ECU determined to be under resource pressure to another ECU.
  • step 604 The details of the process in step 604 will be described later with reference to FIG. 15.
  • the program further includes, after step 604, step 606 of branching the flow of control depending on whether resource pressure has been resolved.
  • the determination in step 606 is made according to whether the resource usage rate in all ECUs of the in-vehicle system is equal to or less than a specified value. If the determination in step 606 is positive, control returns to step 600 and resource monitoring is resumed.
  • the program further includes step 608, executed in response to the negative determination in step 606, to reduce resources on the low priority machine. After this, control returns to step 600.
  • step 608 will be described later with reference to FIG.
  • the controller constantly monitors whether or not resource strain is occurring by comparing various indicators with prescribed values. If the result of the comparison between the index and the specified value indicates that resource strain has occurred, the controller determines that it is necessary to relieve the strain, and immediately executes processing for that purpose.
  • Step 604 includes step 650 of branching the flow of control depending on whether there is a medium- or low-priority virtual ECU operating in the resource-constrained ECU. If the determination in step 650 is negative, execution of step 604 ends.
  • Step 604 further includes, when the determination in step 650 is positive, a step 652 of extracting the migratable virtual ECU, and extracting all executable migration patterns for the virtual ECU extracted in step 652. and step 654 of calculating a predicted post-migration resource usage rate for each pattern.
  • Step 604 further includes a step 656 in which the flow of control is branched depending on whether or not there is a combination in which both the CPU usage rate and the memory usage rate are equal to or less than a specified value as a result of the processing in step 654, and the determination in step 656 is performed. If affirmative, step 658 executes migration of the target virtual ECU so as to realize the combination found in step 656, and ends step 604. Note that the specified value of the CPU usage rate in step 656 is set as the fifth specified value, and the specified value of the memory usage rate is set as the sixth specified value.
  • Step 604 further includes a step 660 in which, when the determination in step 656 is negative, the flow of control is branched depending on whether a combination exists in which the CPU usage rate is equal to or less than a seventh predetermined value; If the answer is yes, the step 662 executes migration of the target virtual ECU so as to realize the combination found in step 660, and ends step 604.
  • Step 604 further includes a step 664 in which, when the determination in step 660 is negative, the flow of control is branched depending on whether there is a combination in which the memory usage rate is equal to or less than an eighth predetermined value; and step 666, in which the target virtual ECU is migrated so as to implement the combination found in step 664, and step 604 is ended. If the determination in step 664 is negative, step 604 is ended without migration.
  • steps 658 and 662 or step 664 if there are multiple possible combinations, the combinations may be selected using criteria similar to step 544 in FIG.
  • step 608 in FIG. 14 includes step 700 of extracting all low-priority machines operating in the ECU (target ECU) in which resource tightness has been detected, and Step 702 of branching the flow of control according to whether or not it is equal to or greater than a ninth specified value; and when the determination in step 702 is positive, uniformly keeping the CPU usage of all low-priority machines operating in the target ECU constant; and step 704 of reducing the amount by the amount. If the determination in step 702 is negative, control proceeds to step 706.
  • Step 608 further includes, after step 704, a step 706 in which the flow of control is branched depending on whether the memory usage rate in the target ECU is equal to or higher than a tenth specified value, and when the determination in step 706 is affirmative, the control flow in the target ECU is branched.
  • Step 708 includes uniformly reducing the memory usage of all low-priority machines by a certain percentage (or a certain amount) and ending the execution of Step 608. When the determination in step 706 is negative, execution of step 608 ends.
  • the first ECU cluster 452 (FIG. 11) having the configuration described above operates as follows.
  • ECU 460 of first ECU cluster 452 and a plurality of ECUs 466 are started.
  • the hyperpizer is activated and enters a state in which it waits for an instruction to activate the virtual ECU.
  • the ECU 460 that operates as a controller ECU operates as follows. It is assumed that the operation destination specification config 370, the priority config 372, and the initial resource specification config 374 are all stored in the auxiliary storage device 486.
  • ECU 460 reads operating destination designation config 370, priority config 372, and initial resource designation config 374 from auxiliary storage device 486 (steps 500, 502, and 504), and sets each designated value to a predetermined variable of the program. Substitute.
  • ECU 460 calculates the resource usage rate for each possible arrangement pattern of virtual ECUs by executing steps 530, 532, and 534. Further, in steps 536, 538, or 540, if there is a virtual ECU arrangement pattern that meets the conditions, then in step 542, the virtual ECU arrangement pattern is narrowed down to that arrangement pattern. Furthermore, in step 544, the ECU 460 calculates the CPU usage rate of each virtual ECU in the first ECU cluster 452 for each of the remaining arrangement patterns. Further, for each of the layout patterns, the ECU 460 selects the layout pattern in which the difference in CPU usage rate among the ECUs is the smallest. In step 546, the ECU 460 allocates and activates each virtual ECU according to the selected arrangement pattern, and ends the process in step 506.
  • ECU 460 starts resource optimization processing in step 508.
  • ECU 460 monitors resources in each ECU. Specifically, ECU 460 calculates the CPU usage rate and memory usage rate of each ECU.
  • step 602 the ECU 460 determines whether there is an ECU whose resources are tight. If no such ECU exists, control returns to step 600 and ECU 460 resumes resource monitoring. If there is an ECU that is under resource pressure, the ECU 460 executes the migration process shown in FIG. 15 in step 604.
  • ECU 460 selects a migratable low-priority machine that is operating in the ECU (target ECU) in which resource strain was detected in step 602 of FIG. . Furthermore, in step 654, ECU 460 extracts all executable migration patterns for the medium and low priority machines extracted in step 652. Further, in step 654, ECU 460 calculates the post-migration resource usage rate for each of the extracted migration patterns. Based on this resource utilization prediction, executable migrations are performed by steps 656, 658, 660, 662, 664, and 666. If the resource pressure is not resolved by the resource usage rate prediction even after migration, the determinations in steps 656, 660, and 664 are all negative, and migration is not performed.
  • step 606 if the resource pressure is resolved as a result of executing step 604, the determination in step 606 will be affirmative and the resource optimization process will end. If the resource pressure is not resolved, step 608 is executed.
  • step 608 if the CPU usage rate is equal to or higher than the ninth predetermined value in the ECU for which resource tightness has been detected (the determination in step 702 is affirmative), the ECU is operated on.
  • the CPU usage of all low-priority machines is uniformly reduced (step 704).
  • the amount of memory used in that ECU is equal to or greater than the tenth specified value (the determination in step 706 is affirmative)
  • the amount of memory used by all low-priority machines operating on that ECU is reduced. Ru.
  • step 702 If the determination in step 702 is negative, the resource reduction process is not executed in step 608. If the determination in step 702 is positive and the determination in step 706 is negative, the CPU usage of the low priority machine is reduced, but the memory usage is not reduced.
  • a plurality of ECUs constitute an ECU cluster, and the controller manages the virtual ECUs executed in each ECU.
  • the controller migrates a virtual ECU from that ECU to another ECU to relieve the resource strain in that ECU. If the resource pressure is not resolved even after migration, the controller reduces the resources of the low-priority virtual ECU operating in that ECU. This allows other higher priority machines running on that ECU to use that resource.
  • This management by the controller dynamically redistributes the ECU load and maintains the functionality of the in-vehicle system.
  • each ECU cluster has a controller, and dynamically redistributes the load in each ECU cluster independently. As a result, even if the overall scale of the in-vehicle system increases and the number of ECUs increases, dynamic load redistribution can be easily performed.
  • information regarding the virtual ECU in each ECU is synchronized between the ECUs.
  • this disclosure is not limited to such embodiments. Instead of performing such synchronization all the time, it may be performed immediately before migration.
  • the layout configuration information regarding the virtual ECU is described in three configuration files.
  • the arrangement information may be written in one configuration file, or may be written in two, four or more configuration files. Further, the arrangement information regarding the virtual ECU does not need to be written in the file.
  • the arrangement information may be stored in a database, for example. This database may be provided for each ECU cluster, or only one database may be provided for the entire in-vehicle system. If only one database is provided for the entire in-vehicle system, it is necessary to assign an identifier to each ECU cluster and provide a field for that identifier in each record of the database.
  • the arrangement and configuration information regarding these virtual ECUs may be collectively written as literals within the source program of the controller program. In this case, it is necessary to compile the controller program, but changing the contents of the layout configuration information itself can be done easily.
  • a program may be created separately from the controller program that, when called, returns the arrangement configuration information in that ECU cluster or a pointer indicating their storage address in a certain format as a return value. In this case, there is no need to recompile the controller program itself.
  • the configuration file describes the layout configuration information for each specific virtual ECU name or identifier.
  • a predetermined class may be defined in advance for virtual machine priority, initially secured resources, or a combination thereof.
  • the priority, the initially secured resource, or a combination thereof may be specified using the class name or class identifier.

Abstract

This in-vehicle system includes an information processing device cluster including a first information processing device and a second information processing device capable of communicating with each other. The first information processing device and the second information processing device each include computer hardware and a virtualization platform operating on the computer hardware. The in-vehicle system further includes a controller for causing one or a plurality of virtual machines to operate on the virtualization platforms of the first information processing device and the second information processing device. The controller monitors the usage condition of computer hardware resources in the first information processing device and the second information processing device, and according to the usage condition of the hardware resources, changes the configuration of the one virtual machine or the plurality of virtual machines in real time.

Description

車載システムおよび車載システムの制御方法In-vehicle systems and control methods for in-vehicle systems
 この開示は、車載システムおよび車載システムの制御方法に関する。この出願は2023年9月1日出願の日本出願第2022-138903号に基づく優先権を主張し、前記日本出願に記載された全ての記載内容をここに参照により援用する。 This disclosure relates to an in-vehicle system and a method for controlling the in-vehicle system. This application claims priority based on Japanese Application No. 2022-138903 filed on September 1, 2023, and all contents described in the said Japanese application are hereby incorporated by reference.
 従来、車両には車両各部を制御するための制御装置であるECU(Electronic Control Unit)が複数個設けられている。ECUは本質的にコンピュータである。そのため、ECUは割込処理が可能であり、緊急時にも適切に対応できる。 Conventionally, a vehicle is provided with a plurality of ECUs (Electronic Control Units) that are control devices for controlling various parts of the vehicle. An ECU is essentially a computer. Therefore, the ECU is capable of interrupt processing and can appropriately respond to emergencies.
 ECUは、元来はエンジンの制御に用いられていた。しかし車両の装備が電子化されるにつれて、様々な箇所にECUが用いられるようになっている。例えば車両に各種センサを設けて情報を収集する処理もECUが担当する。車両の走行状態の判定、ブレーキの制御、電気機器類の制御、さらには車線維持システム、車間距離制御システムなどにもECUが用いられる。 The ECU was originally used to control the engine. However, as vehicle equipment becomes more electronic, ECUs are being used in various locations. For example, the ECU is also responsible for collecting information from various sensors installed in the vehicle. The ECU is used to determine the driving state of the vehicle, control the brakes, control electrical equipment, and also for lane keeping systems, inter-vehicle distance control systems, etc.
 一方、車両においてECUが行う処理も、車両に搭載されるECUの数の増加以上に増加している。そのため、これら処理を複数のタスクに分割し、複数のECUにおいてそれぞれ実行させる技術が存在する。しかし車載ECUの場合、各タスクの負荷の大きさは状況により大きく変化する。そのため、ECUの負荷を動的に分散させる必要がある。 On the other hand, the number of processes performed by ECUs in vehicles is also increasing more than the increase in the number of ECUs installed in vehicles. Therefore, there is a technique in which these processes are divided into a plurality of tasks and each task is executed by a plurality of ECUs. However, in the case of an in-vehicle ECU, the magnitude of the load on each task varies greatly depending on the situation. Therefore, it is necessary to dynamically distribute the load on the ECU.
 こうした問題を解決するための一つの提案が特許文献1に開示されている。特許文献1に開示されている技術は、外部装置を透過的に利用可能とするための仮想デバイスドライバを、タスクを実行するECUに持たせる。そして、タスクを他のECUに移送(マイグレーション)する際には、この仮想デバイスドライバも移送先のECUに移送する。こうすることにより、移送先のECUにおいてもその外部装置を透過的に利用可能となるとされている。なお、このマイグレーションはECUの稼働中に行われる。このようなマイグレーションは「ライブマイグレーション」と呼ばれる。この明細書において説明するマイグレーションは全てライブマイグレーションであり、記載を簡潔にすることを目的として、単に「マイグレーション」という。 One proposal for solving these problems is disclosed in Patent Document 1. The technology disclosed in Patent Document 1 provides an ECU that executes a task with a virtual device driver that allows external devices to be used transparently. When a task is migrated to another ECU, this virtual device driver is also migrated to the destination ECU. It is said that by doing this, the external device can also be used transparently in the destination ECU. Note that this migration is performed while the ECU is in operation. Such migration is called "live migration." All migrations described in this specification are live migrations, and are simply referred to as "migrations" for the purpose of brevity.
特開2009―070135号公報Japanese Patent Application Publication No. 2009-070135 特開2013―003946号公報Japanese Patent Application Publication No. 2013-003946 国際公開第2021/010124号International Publication No. 2021/010124
 この開示の第1の局面に係る車載システムは、互いに通信可能な第1情報処理装置および第2情報処理装置を含む情報処理装置クラスタを含む車載システムであって、第1情報処理装置および第2情報処理装置の各々は、コンピュータハードウェア、およびコンピュータハードウェア上において動作する仮想化基盤を含み、車載システムはさらに、第1情報処理装置および第2情報処理装置の仮想化基盤において、1または複数の仮想マシンを動作させるためのコントローラを含み、コントローラは、第1情報処理装置および第2情報処理装置におけるコンピュータハードウェアリソースの使用状況を監視し、ハードウェアリソースの使用状況に応じて、1または複数の仮想マシンの構成をリアルタイムに変更する。 An in-vehicle system according to a first aspect of this disclosure is an in-vehicle system including an information processing device cluster including a first information processing device and a second information processing device that can communicate with each other, the first information processing device and the second information processing device being able to communicate with each other. Each of the information processing devices includes computer hardware and a virtualization platform running on the computer hardware, and the in-vehicle system further includes one or more virtualization platforms of the first information processing device and the second information processing device. The controller includes a controller for operating a virtual machine, and the controller monitors the usage status of computer hardware resources in the first information processing device and the second information processing device, and depending on the usage status of the hardware resources, Change the configuration of multiple virtual machines in real time.
 この開示の上記および他の目的、特徴、局面および利点は、添付の図面と関連して理解されるこの開示に関する次の詳細な説明から明らかとなるであろう。 These and other objects, features, aspects, and advantages of this disclosure will become apparent from the following detailed description of this disclosure, taken in conjunction with the accompanying drawings.
図1は、仮想化技術を適用したECUの構成の概略を示すブロック図である。FIG. 1 is a block diagram schematically showing the configuration of an ECU to which virtualization technology is applied. 図2は、ECUクラスタを説明するための模式図である。FIG. 2 is a schematic diagram for explaining an ECU cluster. 図3は、ECUクラスタにおける仮想ECUのマイグレーションを説明するための模式図である。FIG. 3 is a schematic diagram for explaining migration of virtual ECUs in an ECU cluster. 図4は、ECUクラスタを制御するコントローラの配置の1例を示すブロック図である。FIG. 4 is a block diagram showing an example of the arrangement of controllers that control the ECU cluster. 図5は、ECUクラスタを制御するコントローラの配置の他の1例を示すブロック図である。FIG. 5 is a block diagram showing another example of the arrangement of controllers that control the ECU cluster. 図6は、実施形態において使用する、稼働先指定のコンフィギュレーション(設定)ファイルの内容の1例を示す模式図である。FIG. 6 is a schematic diagram illustrating an example of the contents of a configuration (setting) file specifying the operating destination used in the embodiment. 図7は、実施形態において使用する、優先度のコンフィギュレーションファイルの内容の1例を示す模式図である。FIG. 7 is a schematic diagram showing an example of the contents of a priority configuration file used in the embodiment. 図8は、実施形態において使用する、初期リソース指定のためのコンフィギュレーションファイルの内容の1例を示す模式図である。FIG. 8 is a schematic diagram showing an example of the contents of a configuration file for specifying initial resources used in the embodiment. 図9は、異なるECUの間の仮想マシンのマイグレーションを説明するための模式図である。FIG. 9 is a schematic diagram for explaining migration of virtual machines between different ECUs. 図10は、単一のECUにおける、使用リソースの削減(使用可能リソースの拡大)を説明するための模式図である。FIG. 10 is a schematic diagram for explaining reduction in used resources (expansion of usable resources) in a single ECU. 図11は、この開示に係る車載システムおよびECUのハードウェア構成を示すブロック図である。FIG. 11 is a block diagram showing the hardware configuration of the in-vehicle system and ECU according to this disclosure. 図12は、実施形態の車載システムのコントローラが実行する、リソース管理のためのプログラムの制御構造を示すフローチャートである。FIG. 12 is a flowchart showing the control structure of a program for resource management executed by the controller of the in-vehicle system according to the embodiment. 図13は、図12に示す仮想マシン起動のための処理を実現するコンピュータプログラムの制御構造を示すフローチャートである。FIG. 13 is a flowchart showing a control structure of a computer program that implements the process for starting the virtual machine shown in FIG. 12. 図14は、図12に示すリソース最適化のための処理を実現するコンピュータプログラムの制御構造を示すフローチャートである。FIG. 14 is a flowchart showing a control structure of a computer program that implements the resource optimization process shown in FIG. 12. 図15は、図14に示すマイグレーションを実現するコンピュータプログラムの制御構造を示すフローチャートである。FIG. 15 is a flowchart showing the control structure of a computer program that implements the migration shown in FIG. 14. 図16は、図14に示すリソース削減処理を実現するコンピュータプログラムの制御構造を示すフローチャートである。FIG. 16 is a flowchart showing the control structure of a computer program that implements the resource reduction process shown in FIG. 14.
 [この開示が解決しようとする課題]
 最近のコンピュータ技術の発展に伴い、1台のECU上に仮想化基盤を構築し、この仮想化基盤の上にそれぞれ独立なOS(Operating System)、BSW(Basic SoftWare)などを用いる複数の仮想マシンを動作させることが可能になっている。すなわち、1台のECU上において1または複数の仮想ECUを動作させることができる。その結果、車両において使用されている多数のECUを、比較的少ない数のECUに集約できる。しかしそのように比較的少ない数のECU上において複数の仮想マシンを動作させる場合にも、各ECUの負荷を動的に分散させる必要がある。
[Issues this disclosure seeks to solve]
With the recent development of computer technology, a virtualization platform is built on one ECU, and multiple virtual machines each using an independent OS (Operating System), BSW (Basic Software), etc. are built on this virtualization platform. It is now possible to operate. That is, one or more virtual ECUs can be operated on one ECU. As a result, a large number of ECUs used in a vehicle can be consolidated into a relatively small number of ECUs. However, even when a plurality of virtual machines are operated on such a relatively small number of ECUs, it is necessary to dynamically distribute the load on each ECU.
 上記特許文献1に開示の技術は、アプリケーションのタスクレベルにおける負荷分散である。仮想マシンが動作しているECUに特許文献1に開示の技術を適用する場合、そのECU上において動作している複数の仮想ECUの間の負荷分散ということになる。そのような方法によっては、仮想マシンが動作しているECU自体の負荷を軽減させることはできない。こうした問題は、ECUに限らず車両に複数搭載される情報処理装置においても同様に生じ得る。 The technology disclosed in Patent Document 1 mentioned above is load distribution at the task level of applications. When applying the technology disclosed in Patent Document 1 to an ECU on which a virtual machine is operating, the load is distributed among a plurality of virtual ECUs operating on the ECU. Such methods cannot reduce the load on the ECU itself on which the virtual machine is operating. These problems may occur not only in the ECU but also in multiple information processing devices installed in a vehicle.
 この開示は、仮想マシンが動作している情報処理装置の負荷を動的に制御できる車載システムおよび制御方法を提供することを目的とする。 An object of this disclosure is to provide an in-vehicle system and a control method that can dynamically control the load of an information processing device on which a virtual machine is running.
 [この開示の効果]
 以上のようにこの開示によると、仮想マシンが動作している情報処理装置の負荷を動的に制御できる車載システムおよび制御方法を提供できる。
[Effects of this disclosure]
As described above, according to this disclosure, it is possible to provide an in-vehicle system and a control method that can dynamically control the load of an information processing device on which a virtual machine is running.
 [本開示の実施形態の説明]
 この開示を要約すると以下の通りである。
[Description of embodiments of the present disclosure]
A summary of this disclosure follows.
 (1)この開示の第1の局面に係る車載システムは、互いに通信可能な第1情報処理装置および第2情報処理装置を含む情報処理装置クラスタを含む車載システムであって、第1情報処理装置および第2情報処理装置の各々は、コンピュータハードウェア、およびコンピュータハードウェア上において動作する仮想化基盤を含み、車載システムはさらに、第1情報処理装置および第2情報処理装置の仮想化基盤において、1または複数の仮想マシンを動作させるためのコントローラを含み、コントローラは、第1情報処理装置および第2情報処理装置におけるハードウェアリソースの使用状況を監視し、ハードウェアリソースの使用状況に応じて、1または複数の仮想マシンの構成をリアルタイムに変更する。 (1) An in-vehicle system according to a first aspect of this disclosure is an in-vehicle system including an information processing device cluster including a first information processing device and a second information processing device that can communicate with each other, the first information processing device Each of the information processing devices and the second information processing device includes computer hardware and a virtualization infrastructure that operates on the computer hardware, and the in-vehicle system further includes, in the virtualization infrastructure of the first information processing device and the second information processing device, The controller includes a controller for operating one or more virtual machines, the controller monitors the usage status of hardware resources in the first information processing device and the second information processing device, and depending on the usage status of the hardware resources, Change the configuration of one or more virtual machines in real time.
 1つの情報処理装置クラスタに、第1情報処理装置と第2情報処理装置とが別々に設けられる。コントローラが、これら情報処理装置の各々において1または複数の仮想マシンを動作させる。コントローラは、第1情報処理装置と第2情報処理装置におけるハードウェアリソースの使用状況を監視し、ハードウェアリソースの使用状況に応じて、仮想マシンの構成をリアルタイムに変更する。この結果、仮想マシンが動作している情報処理装置の負荷を動的に制御できる。この負荷の制御は、他の情報処理装置クラスタにおける負荷の制御とは独立に実行できるため、車載システムにおける仮想マシンの負荷の動的制御が容易に行える。 A first information processing device and a second information processing device are separately provided in one information processing device cluster. A controller operates one or more virtual machines in each of these information processing devices. The controller monitors the usage status of hardware resources in the first information processing device and the second information processing device, and changes the configuration of the virtual machine in real time according to the usage status of the hardware resources. As a result, the load on the information processing device on which the virtual machine is running can be dynamically controlled. Since this load control can be executed independently of the load control in other information processing device clusters, dynamic control of the virtual machine load in the in-vehicle system can be easily performed.
 (2)上記(1)において、コントローラは、情報処理装置クラスタに含まれる、第1情報処理装置および第2情報処理装置と通信可能で、第1情報処理装置および第2情報処理装置とは独立に設けられたコントローラ装置を含んでもよい。 (2) In (1) above, the controller is capable of communicating with the first information processing device and the second information processing device included in the information processing device cluster, and is independent of the first information processing device and the second information processing device. The controller device may include a controller device provided in the controller.
 コントローラ装置が第1情報処理装置および第2情報処理装置のいずれからも独立に設けられ、そのコントローラ装置がコントローラとして機能する。その結果、コントローラ装置は情報処理装置の負荷の動的制御の影響を受けず、車載システムにおける仮想マシンの実行のための情報処理装置の負荷の動的制御が安定して行える。 A controller device is provided independently from both the first information processing device and the second information processing device, and the controller device functions as a controller. As a result, the controller device is not affected by the dynamic control of the load on the information processing device, and dynamic control of the load on the information processing device for executing the virtual machine in the in-vehicle system can be stably performed.
 (3)上記(1)において、コントローラは、第1情報処理装置の仮想化基盤において実行される仮想コントローラを含んでもよい。 (3) In (1) above, the controller may include a virtual controller executed on the virtualization infrastructure of the first information processing device.
 コントローラが、第1情報処理装置の仮想化基盤において仮想コントローラとして実現される。コントローラを実行するためのハードウェアを独立に設ける必要がなく、車載装置のコストを低く抑えることができ、メンテナンスも容易になる。 The controller is realized as a virtual controller on the virtualization infrastructure of the first information processing device. There is no need to separately provide hardware for executing the controller, so the cost of the in-vehicle device can be kept low and maintenance can be facilitated.
 (4)上記(1)から(3)のいずれか1つにおいて、コントローラは、1または複数の仮想マシンの配置構成を規定する配置構成情報を記録する配置構成記録部と、第1情報処理装置および第2情報処理装置の稼働状況を監視し、1または複数の仮想マシンが安定して動作するように、情報処理装置クラスタの内部における1または複数の仮想マシンの配置をリアルタイムに決定し、必要ならば変更する配置制御部を含んでもよい。 (4) In any one of (1) to (3) above, the controller includes a layout configuration recording unit that records layout configuration information that defines a layout configuration of one or more virtual machines, and a first information processing device. and monitors the operating status of the second information processing device, and determines the placement of one or more virtual machines within the information processing device cluster in real time so that the one or more virtual machines operate stably. If so, it may include a placement control section for changing the location.
 仮想マシンの配置構成が、配置制御部と別に設けられる。仮想マシンの配置を変更するときには、配置構成部の記録内容を変更すればよく、配置制御部の機能を変更する必要はない。その結果、仮想マシンの配置構成の変更が容易に行える。 The placement configuration of virtual machines is provided separately from the placement control unit. When changing the arrangement of virtual machines, it is only necessary to change the recorded contents of the arrangement configuration section, and there is no need to change the function of the arrangement control section. As a result, the arrangement of virtual machines can be easily changed.
 (5)上記(4)において、配置構成情報は、1または複数の仮想マシンにおいて、特定の稼働先である情報処理装置において稼働させるべき仮想マシンと、特定の稼働先である情報処理装置を指定する情報とを記録した稼働先指定情報、1または複数の仮想マシンに関し、ハードウェアリソースを割り当てる際の優先度を指定する優先度情報、1または複数の仮想マシンの起動時のハードウェアリソースの初期割当を指定する初期リソース情報、または稼働先指定情報、優先度情報、および初期リソース情報のうち、少なくともいずれか2つ、を含んでもよい。 (5) In (4) above, the placement configuration information specifies, among one or more virtual machines, a virtual machine to be operated on an information processing device that is a specific operating destination and an information processing device that is a specific operating destination. Priority information that specifies the priority when allocating hardware resources for one or more virtual machines, Initialization of hardware resources when starting one or more virtual machines The information may include at least any two of initial resource information specifying allocation, operating destination specification information, priority information, and initial resource information.
 稼働先指定情報を使用するときには、例えば特定の情報処理装置において稼働させる必要がある仮想マシンが、別の情報処理装置に移動されてしまうことが防止できる。優先度情報を使用するときには、車載システムにとってより重要な仮想マシンに優先的にハードウェアリソースが割り当てられる。その結果、車載システムが所定の機能を安定して提供できる。初期リソース情報を使用するときには、車載システムの起動時に仮想マシンの配置を速やかに決定できる。起動後に仮想マシンの配置を調整する必要がなく、車載システムの起動に要する時間を短縮できる。 When using the operating destination designation information, for example, it is possible to prevent a virtual machine that needs to be operated on a specific information processing device from being moved to another information processing device. When using priority information, hardware resources are preferentially allocated to virtual machines that are more important to the in-vehicle system. As a result, the in-vehicle system can stably provide predetermined functions. When initial resource information is used, the placement of virtual machines can be quickly determined when the in-vehicle system is started. There is no need to adjust the placement of virtual machines after startup, reducing the time required to start up the in-vehicle system.
 (6)上記(4)において、配置構成情報は、1または複数の仮想マシンにおいて、特定の稼働先である情報処理装置において稼働させるべき仮想マシンと、特定の稼働先である情報処理装置を指定する情報とを記録した稼働先指定情報と、1または複数の仮想マシンに関し、ハードウェアリソースを割り当てる際の優先度を指定する優先度情報を含んでもよく、優先度は、最も高い第1優先度と、第1優先度より低い第2優先度とを含んでもよく、配置制御部は、第1情報処理装置におけるハードウェアリソースの使用状況を監視し、第1情報処理装置においてハードウェアリソースのひっ迫が検出されたことに応答して、第1情報処理装置において実行されている仮想マシンの中において、稼働先指定情報により第2情報処理装置に移動可能であることが示され、かつ優先度が第2優先度である仮想マシンを選択して、第2情報処理装置に移動する稼働先制御部を含んでもよい。 (6) In (4) above, the placement configuration information specifies, among one or more virtual machines, a virtual machine to be operated on an information processing device that is a specific operating destination and an information processing device that is a specific operating destination. and priority information that specifies the priority when allocating hardware resources for one or more virtual machines, where the priority is the highest first priority. and a second priority lower than the first priority. In response to the detection of the virtual machine, among the virtual machines running on the first information processing device, the operation destination specification information indicates that the virtual machine can be moved to the second information processing device, and the priority is The information processing apparatus may include an operation destination control unit that selects a virtual machine having a second priority and moves the virtual machine to the second information processing apparatus.
 第1情報処理装置においてハードウェアリソースのひっ迫が検出されたときに、第1情報処理装置から第2情報処理装置に移動される仮想マシンは、第2情報処理装置に移動可能であり、かつ第2優先度が割り当てられているものになる。車載システムの機能を実現する上で重要な仮想マシンが、その機能を十分に発揮できない情報処理装置に移動されてしまう可能性が排除でき、車載システムが、車載システムに求められる機能を安定して発揮できる。 A virtual machine that is moved from the first information processing device to the second information processing device when a hardware resource shortage is detected in the first information processing device is capable of being moved to the second information processing device, and 2 priority is assigned. This eliminates the possibility that a virtual machine, which is important for realizing the functions of an in-vehicle system, may be moved to an information processing device that cannot fully demonstrate its functions, and the in-vehicle system can stably perform the functions required of an in-vehicle system. I can demonstrate it.
 (7)上記(6)において、配置制御部はさらに、第1情報処理装置および第2情報処理装置におけるハードウェアリソースの使用状況を監視し、稼働先制御部による仮想マシンの移動処理の後においても車載システムにおいてハードウェアリソースのひっ迫が検出されたことに応答して、ハードウェアリソースのひっ迫が検出された情報処理装置において稼働している仮想マシンの中で、優先度が第2優先度である仮想マシンへのハードウェアリソースの割当を削減するリソース削減部を含んでもよい。 (7) In (6) above, the placement control unit further monitors the usage status of hardware resources in the first information processing device and the second information processing device, and after the operation destination control unit moves the virtual machine. In response to the detection of hardware resource tightness in the in-vehicle system, the priority level is set to 2nd priority among the virtual machines running on the information processing device where the hardware resource tightness was detected. It may also include a resource reduction unit that reduces allocation of hardware resources to a certain virtual machine.
 仮想マシンの移動をした後にもハードウェアリソースのひっ迫が検出されたり、仮想マシンの移動ができずにハードウェアリソースのひっ迫が解消できなかったりする場合がある。そうした場合は、ハードウェアリソースのひっ迫が検出された情報処理装置において、優先度が低い仮想マシンへのハードウェアリソースの割当を削減する。その結果、優先度が高い仮想マシンが使用可能なハードウェアリソースの量が増加し、車載システムの性能を維持できる。 In some cases, even after moving a virtual machine, a hardware resource strain is detected, or the virtual machine cannot be moved and the hardware resource strain cannot be resolved. In such a case, in the information processing apparatus in which the shortage of hardware resources has been detected, the allocation of hardware resources to virtual machines with low priority is reduced. As a result, the amount of hardware resources available to high-priority virtual machines increases, allowing the performance of the in-vehicle system to be maintained.
 (8)上記(1)から(7)のいずれか1つにおいて、車載システムは、複数の情報処理装置クラスタを含んでもよい。 (8) In any one of the above (1) to (7), the in-vehicle system may include a plurality of information processing device clusters.
 複数の情報処理装置クラスタを設けた場合でも、各情報処理装置クラスタにおける仮想マシンの実行に関する情報処理装置の負荷の動的分散は独立に行える。その結果、車載装置の全体において使用される仮想マシンおよび情報処理装置の数が増加しても、車載システムの機能を安定して維持できる。 Even when multiple information processing device clusters are provided, dynamic distribution of the load on the information processing devices related to the execution of virtual machines in each information processing device cluster can be performed independently. As a result, even if the number of virtual machines and information processing devices used in the entire vehicle-mounted device increases, the functions of the vehicle-mounted system can be stably maintained.
 (9)この開示の第2の局面に係る車載システムの制御方法は、互いに通信可能な第1情報処理装置および第2情報処理装置を含む情報処理装置クラスタを含む車載システムの制御方法であって、第1情報処理装置および第2情報処理装置の各々は、コンピュータハードウェア、およびコンピュータハードウェア上において動作する仮想化基盤を含み、制御方法は、コンピュータが、第1情報処理装置および第2情報処理装置の各々の仮想化基盤において、1または複数の仮想マシンを稼働させるステップと、コンピュータが、第1情報処理装置および第2情報処理装置におけるハードウェアリソースの使用状況を監視するステップと、第1情報処理装置においてハードウェアリソースのひっ迫が検出されたことに応答して、1または複数の仮想マシンの構成をリアルタイムに変更するステップとを含む。 (9) A method for controlling an in-vehicle system according to a second aspect of this disclosure is a method for controlling an in-vehicle system including an information processing device cluster including a first information processing device and a second information processing device that can communicate with each other. , each of the first information processing device and the second information processing device includes computer hardware and a virtualization platform operating on the computer hardware, and the control method includes a computer controlling the first information processing device and the second information processing device. a step of operating one or more virtual machines in each virtualization platform of the processing device; a step of the computer monitoring the usage status of hardware resources in the first information processing device and the second information processing device; The method includes the step of changing the configuration of one or more virtual machines in real time in response to detection of hardware resource shortage in one information processing device.
 1つの情報処理装置クラスタに、第1情報処理装置と第2情報処理装置とが別々に設けられる。コンピュータが、これら情報処理装置の各々において1または複数の仮想マシンを動作させる。コンピュータは、第1情報処理装置と第2情報処理装置におけるハードウェアリソースの使用状況を監視し、ハードウェアリソースの使用状況に応じて、仮想マシンの構成をリアルタイムに変更する。この結果、仮想マシンが動作している情報処理装置の負荷を動的に制御できる。この負荷の制御は、他の情報処理装置クラスタにおける負荷の制御とは独立に実行できるため、車載システムにおける仮想マシンの負荷の動的制御が容易に行える。 A first information processing device and a second information processing device are separately provided in one information processing device cluster. A computer operates one or more virtual machines in each of these information processing devices. The computer monitors the usage status of hardware resources in the first information processing device and the second information processing device, and changes the configuration of the virtual machine in real time according to the usage status of the hardware resources. As a result, the load on the information processing device on which the virtual machine is running can be dynamically controlled. Since this load control can be executed independently of the load control in other information processing device clusters, dynamic control of the virtual machine load in the in-vehicle system can be easily performed.
 [本開示の実施形態の詳細]
 本開示の実施形態に係る車載システムおよびその制御方法の具体例を、以下に図面を参照しつつ説明する。以下の説明および図面においては、同一の部品には同一の参照番号を付してある。したがって、それらについての詳細な説明は繰返さない。なお、本開示はこれらの例示に限定されるものではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内における全ての変更が含まれることが意図される。また、以下の実施形態の1または複数の任意の特徴を組み合わせてもよい。
[Details of embodiments of the present disclosure]
A specific example of an in-vehicle system and a control method thereof according to an embodiment of the present disclosure will be described below with reference to the drawings. In the following description and drawings, identical parts are provided with the same reference numerals. Therefore, detailed description thereof will not be repeated. Note that the present disclosure is not limited to these examples, but is indicated by the scope of the claims, and is intended to include all changes within the meaning and scope equivalent to the scope of the claims. Moreover, one or more arbitrary features of the following embodiments may be combined.
 第1実施形態
 1.構成
 A.ECU
 図1に、この開示の第1実施形態に係るECU42の概略構成を示す。図1を参照して、ECU42は、コンピュータハードウェアを含む物理ハードウェア層60および物理ハードウェア層60上に構築された仮想化基盤層62、および仮想化基盤層62において動作する1または複数の仮想マシン(仮想ECU)を含む仮想マシン層64を含む。仮想化基盤層62は、物理ハードウェア層60というハードウェアリソースを使用する。
First embodiment 1. Configuration A. ECU
FIG. 1 shows a schematic configuration of an ECU 42 according to a first embodiment of this disclosure. Referring to FIG. 1, the ECU 42 includes a physical hardware layer 60 including computer hardware, a virtualization infrastructure layer 62 built on the physical hardware layer 60, and one or more components operating in the virtualization infrastructure layer 62. It includes a virtual machine layer 64 that includes a virtual machine (virtual ECU). The virtualization infrastructure layer 62 uses a hardware resource called the physical hardware layer 60.
 仮想ECUはいずれも従来の各ECUと同一のタスクを実行するものである。これら仮想ECUはいずれも仮想化基盤層62により提供される、従来の動作環境と同じ仮想的動作環境において動作する。そのため、仮想ECUにより実行されるOSおよび各アプリケーションは、従来の単独のECUにより実行されるOSおよびアプリケーションと同じである。 Each virtual ECU executes the same tasks as each conventional ECU. All of these virtual ECUs operate in the same virtual operating environment as the conventional operating environment, which is provided by the virtualization infrastructure layer 62. Therefore, the OS and each application executed by the virtual ECU are the same as the OS and applications executed by a conventional single ECU.
 B.ECUクラスタ
 図1に示すように、1つのECUにより複数の仮想ECUを動作させることができる。しかし、個々のECU上において複数の仮想ECUを動作させる場合、特定のECUの負荷が過大になる可能性がある。そうした状況の発生は避ける必要がある。
B. ECU Cluster As shown in FIG. 1, one ECU can operate multiple virtual ECUs. However, when a plurality of virtual ECUs are operated on each ECU, there is a possibility that the load on a particular ECU becomes excessive. It is necessary to avoid such situations from occurring.
 そうした問題を避けるために、この実施形態においては、ECUクラスタという考え方を導入する。ECUクラスタとは、各々が1または複数の仮想ECUを動作させている複数のECUからなるグループのことをいう。ECUクラスタは、後述するように仮想ECUのマイグレーション(移動)を行う際に、移動先の範囲を規定する。すなわち、あるECUクラスタ内のECUにおいて動作している仮想ECUは、同じECUクラスタ内の別のECUにはマイグレーション可能だが、他のECUクラスタのECUにはマイグレーションされない。このように構築したECUクラスタ内には、ECUクラスタ内の各ECUのリソースの使用状況を監視することにより、クラスタ内の各ECUの負荷を平準化したり、各ECUにおける負荷の削減を行ったりするためのコントローラを設ける。ECUクラスタを設けることにより、1つのコントローラが管理するECUおよび仮想ECUの数を比較的少なくでき、管理が容易であって、迅速に必要な処理を行えるという効果がある。 In order to avoid such problems, this embodiment introduces the concept of an ECU cluster. An ECU cluster refers to a group consisting of a plurality of ECUs, each of which operates one or more virtual ECUs. The ECU cluster defines a range of destinations when a virtual ECU is migrated (moved) as will be described later. That is, a virtual ECU operating in an ECU within a certain ECU cluster can be migrated to another ECU within the same ECU cluster, but is not migrated to an ECU in another ECU cluster. In the ECU cluster constructed in this way, by monitoring the resource usage status of each ECU in the ECU cluster, it is possible to level out the load on each ECU in the cluster or reduce the load on each ECU. A controller will be provided for this purpose. By providing an ECU cluster, the number of ECUs and virtual ECUs managed by one controller can be made relatively small, which has the advantage of being easy to manage and quickly performing necessary processing.
 なお、ECUクラスタを用いず、個々のECUを大規模かつ高性能化することにより負荷が過大になる状況の発生を避けることが可能という考え方もできる。図2の上段にそのような考え方による例をECU100として示す。この例においては、ECU100において多数の仮想マシンを動作させる。一方、ECUクラスタという考え方による例を図2の下段に示す。図2の下段に示す形式においては、上段に示すECU100よりも小規模でかつ性能も低い複数のECU(例えば第1ECU110および第2ECU112)によりECUクラスタを形成する。第1ECU110および第2ECU112においては、それぞれ複数の仮想ECUが動作する。ここのECUの性能はECU100よりも劣るが、図2の下段に示すようなECUクラスタを採用することにより、図2の上段と同程度の計算リソースを提供できる。 Note that it is also possible to think that it is possible to avoid a situation where the load becomes excessive by increasing the scale and performance of each individual ECU without using an ECU cluster. An example based on such a concept is shown in the upper part of FIG. 2 as an ECU 100. In this example, a large number of virtual machines are operated in the ECU 100. On the other hand, an example based on the concept of ECU cluster is shown in the lower part of FIG. In the format shown in the lower part of FIG. 2, an ECU cluster is formed by a plurality of ECUs (for example, a first ECU 110 and a second ECU 112) that are smaller in size and have lower performance than the ECU 100 shown in the upper part. A plurality of virtual ECUs operate in each of the first ECU 110 and the second ECU 112. Although the performance of the ECU here is inferior to that of the ECU 100, by employing an ECU cluster as shown in the lower part of FIG. 2, it is possible to provide computation resources comparable to those in the upper part of FIG.
 しかし、実際の車両には、図2の下段の構成を採用することが望ましい。その理由は以下のとおりである。上記したように、図1の上段の構成によっては、ECU100のリソースがひっ迫したときに、仮想ECUを他のECUにマイグレーションさせることができない。それに対し、図2の下段に示す構成においては、同じECUクラスタに属するECU間において仮想ECUをマイグレーションできる。また、第1ECU110および第2ECU112として同一規格の製品を使用する場合、車両の性能要求にあわせてECUの数を調整可能である。そのため、過剰な性能のECUを使用することによるコストの増加が防止できる。その上、量産コストによりECUの調達単価が安くなり、結果として車両の製造コストが下げられるという利点もある。 However, it is desirable to adopt the configuration shown in the lower part of FIG. 2 for an actual vehicle. The reason is as follows. As described above, depending on the configuration shown in the upper part of FIG. 1, when the resources of the ECU 100 become tight, it is not possible to migrate the virtual ECU to another ECU. In contrast, in the configuration shown in the lower part of FIG. 2, virtual ECUs can be migrated between ECUs belonging to the same ECU cluster. Moreover, when using products of the same standard as the first ECU 110 and the second ECU 112, the number of ECUs can be adjusted according to the performance requirements of the vehicle. Therefore, an increase in cost due to the use of an ECU with excessive performance can be prevented. Furthermore, there is an advantage that the unit cost of ECU procurement is reduced due to the mass production cost, and as a result, the manufacturing cost of the vehicle is reduced.
 図3に、図2の下段の構成におけるマイグレーションについて説明する。図3を参照して、車載ECUクラスタ140が、第1ECU150および第2ECU152を含むものとする。第1ECU150および物理ハードウェア層170は図示しない車載ネットワークにより互いに通信可能である。例えば、図3の左端に示すように、第1ECU150のリソースがひっ迫したときに、第2ECU152のリソースに余裕があれば、第1ECU150において動作している仮想ECUの一つを第2ECU152にマイグレーション176させる。仮想ECUをマイグレーションさせることにより、第1ECU150のリソースに余裕が生じ、第1ECU150において動作している他の仮想ECUの安定な動作を維持できる。すなわち、リソースのひっ迫のために仮想ECUの動作に問題が生じることが防止できる。 FIG. 3 describes migration in the configuration shown in the lower part of FIG. 2. Referring to FIG. 3, it is assumed that in-vehicle ECU cluster 140 includes first ECU 150 and second ECU 152. The first ECU 150 and the physical hardware layer 170 can communicate with each other via an in-vehicle network (not shown). For example, as shown at the left end of FIG. 3, when the resources of the first ECU 150 are tight, if the resources of the second ECU 152 are available, one of the virtual ECUs operating in the first ECU 150 is migrated 176 to the second ECU 152. . By migrating the virtual ECU, resources of the first ECU 150 are freed up, and stable operation of other virtual ECUs operating in the first ECU 150 can be maintained. That is, it is possible to prevent problems from occurring in the operation of the virtual ECU due to tight resources.
 なお、このようなマイグレーションをするためには、仮想ECUの状態(メモリ、仮想的レジスタの内容など)も第1ECU150から第2ECU152に移送する必要がある。この実施形態においては、マイグレーションの時点においてそれら状態情報を移送するのではなく、同期処理部154を設けることにより、第2ECU152の物理ハードウェア層170の記憶内容と、第2ECU152の物理ハードウェア層172の記憶内容とを常に同期させる。こうすることにより、マイグレーションの発生時においても物理ストレージにマイグレーション前の状態情報が記憶されているため、仮想ECUは動作を続行できる。なお、後述するように、仮想ECUの中には、稼働先のECUが指定されていたり、リソースの割当優先度が高く設定されていたりするために、マイグレーションをしないものも存在する。そうした仮想ECUについてはこの同期処理をする必要はない。 Note that in order to perform such migration, it is also necessary to transfer the state of the virtual ECU (memory, contents of virtual registers, etc.) from the first ECU 150 to the second ECU 152. In this embodiment, instead of transferring the status information at the time of migration, by providing the synchronization processing unit 154, the storage contents of the physical hardware layer 170 of the second ECU 152 and the physical hardware layer 172 of the second ECU 152 are transferred. Always synchronize the memory contents of By doing so, even when migration occurs, the state information before migration is stored in the physical storage, so the virtual ECU can continue operating. Note that, as will be described later, some virtual ECUs do not undergo migration because the operating destination ECU is specified or the resource allocation priority is set high. There is no need to perform this synchronization process for such virtual ECUs.
 この実施形態においては、同期処理部154による状態情報の同期処理、第1ECU150および第2ECU152における物理ハードウェア層170および172のリソースの使用状況の監視、およびマイグレーションの実行のために、1つの車載ECUクラスタにはコントローラを設ける。 In this embodiment, one in-vehicle ECU is used for the synchronization processing of state information by the synchronization processing unit 154, the monitoring of the usage status of resources of the physical hardware layers 170 and 172 in the first ECU 150 and the second ECU 152, and the execution of migration. A controller is provided in the cluster.
 図4に、コントローラの配置の第1の例を示す。図4を参照して、この車載システム200は、車載ネットワーク222により互いに通信可能な第1ECU220および第2ECU224を含む。これらのうち、第1ECU220には、例えばセンサ230などが接続されている。第2ECU224には、例えば車体制御用信号線232などの、第1ECU220とは異なるデバイスが接続されている。第1ECU220においては、車載システム200における仮想ECUの構成を動的に制御するコントローラ240が設けられている。コントローラ240は、他の仮想ECUと同様、仮想マシンとして動作する。すなわちコントローラ240は仮想コントローラと呼ぶことができる。 FIG. 4 shows a first example of the arrangement of the controllers. Referring to FIG. 4, this in-vehicle system 200 includes a first ECU 220 and a second ECU 224 that can communicate with each other via an in-vehicle network 222. Among these, a sensor 230 and the like are connected to the first ECU 220, for example. A device different from the first ECU 220, such as a vehicle body control signal line 232, is connected to the second ECU 224. The first ECU 220 is provided with a controller 240 that dynamically controls the configuration of the virtual ECU in the in-vehicle system 200. Controller 240 operates as a virtual machine like other virtual ECUs. That is, controller 240 can be called a virtual controller.
 コントローラ240による仮想ECUの構成の動的制御には一定の制約がある。例えば第1ECU220にはセンサ230などが接続されている。したがってこれらセンサ230などからの情報を処理するためのタスクが動作している仮想ECUは第1ECU220に常駐していなければならず、第2ECU224にマイグレーションできない。同様に、第2ECU224には車体制御用信号線232などが接続されている。したがって車体制御を行うタスクは第2ECU224上において動作する仮想ECUにおいて機能しなければならず、第1ECU220にマイグレーションできない。 There are certain restrictions on the dynamic control of the configuration of the virtual ECU by the controller 240. For example, a sensor 230 and the like are connected to the first ECU 220. Therefore, the virtual ECU in which tasks for processing information from these sensors 230 and the like are running must reside in the first ECU 220 and cannot be migrated to the second ECU 224. Similarly, a vehicle body control signal line 232 and the like are connected to the second ECU 224. Therefore, the task for controlling the vehicle body must function in the virtual ECU operating on the second ECU 224 and cannot be migrated to the first ECU 220.
 コントローラ240は、このような、仮想ECUの配置に関する制約条件および車載システム200の起動時に仮想ECUを第1ECU220および第2ECU224にどのように配置するかなどに関する条件を記憶するための記憶部242を持つ。記憶部242は、このような条件をコンフィギュレーションファイルの形式により保持し、コントローラ240の起動時に読み込む。以下、コンフィギュレーションを「コンフィグ」と呼び、コンフィギュレーションファイルを「コンフィグファイル」と呼ぶ。コンフィグファイルの内容例については後述する。 The controller 240 has a storage unit 242 for storing such constraints regarding the arrangement of the virtual ECUs and conditions regarding how the virtual ECUs are arranged in the first ECU 220 and the second ECU 224 when the in-vehicle system 200 is started. . The storage unit 242 holds such conditions in the form of a configuration file, and reads the conditions when the controller 240 is started. Hereinafter, the configuration will be referred to as a "config" and the configuration file will be referred to as a "config file." An example of the contents of the configuration file will be described later.
 図5に、コントローラの配置の別の例を示す。図5を参照して、車載システム300は、車載ネットワーク322と、車載ネットワーク322を介して互いに通信可能で、それぞれ1または複数の仮想ECUをホストすることが可能な第1ECU320および第2ECU324と、車載ネットワーク322を介して車載ネットワーク322および第2ECU324と通信可能で、これらとは独立して設けられたコントローラ装置であるコントローラECU326とを含む。この例においては、コントローラECU326は図4に示す記憶部242と同様の記憶部342を含む。コントローラECU326においては、プログラムにより実現されるコントローラ340が動作している。コントローラECU326は、コンフィグファイルを格納するための記憶部342を持つ。第1ECU320および第2ECU324と異なり、コントローラECU326は仮想化技術を使用したものではない。コントローラECU326は従来と同様、独立したECUとして動作する。 FIG. 5 shows another example of the arrangement of the controller. Referring to FIG. 5, the in-vehicle system 300 includes an in-vehicle network 322, a first ECU 320 and a second ECU 324 that can communicate with each other via the in-vehicle network 322, and each can host one or more virtual ECUs; It includes a controller ECU 326 which is a controller device that is capable of communicating with the in-vehicle network 322 and the second ECU 324 via the network 322 and is provided independently from these. In this example, controller ECU 326 includes a storage section 342 similar to storage section 242 shown in FIG. In the controller ECU 326, a controller 340 implemented by a program is operating. Controller ECU 326 has a storage unit 342 for storing configuration files. Unlike the first ECU 320 and the second ECU 324, the controller ECU 326 does not use virtualization technology. The controller ECU 326 operates as an independent ECU as in the past.
 この実施形態においては、記憶部242および342は3種類のコンフィグファイルを格納する。これらは稼働先指定コンフィグ、優先度コンフィグ、および初期リソース指定コンフィグである。 In this embodiment, the storage units 242 and 342 store three types of configuration files. These are a destination specification config, a priority config, and an initial resource specification config.
 図6を参照して、稼働先指定コンフィグ370は全ての仮想ECUについて、その各々が稼働すべきECUをリストしている。例えば図4の車載システム200の場合、仮想マシンA(実際には仮想マシンAの識別子により指定される。)は第1ECU220において動作し、第2ECU224にはマイグレーションできない。仮想マシンBは第2ECU224において動作し、第1ECU220にはマイグレーションできない。仮想マシンCおよび仮想マシンDについては、そのようなECUの指定がないことが示されている。仮想マシンCおよび仮想マシンDは、いずれも第1ECU220および第2ECU224のいずれでも動作可能であり、したがってマイグレーションできる。 Referring to FIG. 6, the operation destination specification config 370 lists the ECUs each of which should operate for all virtual ECUs. For example, in the case of the in-vehicle system 200 in FIG. 4, the virtual machine A (actually specified by the identifier of the virtual machine A) operates in the first ECU 220 and cannot be migrated to the second ECU 224. Virtual machine B operates in the second ECU 224 and cannot be migrated to the first ECU 220. For virtual machine C and virtual machine D, it is shown that no such ECU is specified. Virtual machine C and virtual machine D can both operate on either the first ECU 220 or the second ECU 224, and therefore can be migrated.
 なお、この例において、仮想マシンCおよび仮想マシンDについては「指定なし」という情報が稼働先指定コンフィグ370に記述されているが、この開示はそのような形態には限定されない。例えば、稼働先指定コンフィグ370にリストされていない仮想ECUは「指定なし」がデフォルトとして指定されていると取り決めてもよい。ただしこの場合には、起動すべき仮想ECUの全てが何らかの形により把握できるようにする必要がある。例えば、全ての仮想ECUの識別子をリストしたコンフィグファイルを別に設けてもよい。 Note that in this example, the information "not specified" is written in the operation destination specification configuration 370 for the virtual machines C and D, but this disclosure is not limited to such a form. For example, it may be determined that virtual ECUs that are not listed in the destination designation configuration 370 are designated as "not specified" as the default. However, in this case, it is necessary to be able to grasp all the virtual ECUs to be activated in some way. For example, a configuration file listing the identifiers of all virtual ECUs may be provided separately.
 ECUの指定は、ECUの名称、識別子、またはアドレスにより行える。各ECUに所定の記号または番号を対応付け、その記号または番号により指定してもよい。ECUの数と等しい要素を持つベクトルを用意して各要素とECUとを対応付け、仮想ECUが稼働可能なECUについては対応する要素の値を例えば「0」に設定し、稼働不可なECUに対応する要素の値を例えば「1」に設定してそのベクトルにより指定してもよいし、ベクトルの要素の配列を2進数として見てその値を用いて指定してもよい。この場合の値の表現としては、8進数表現または16進数表現などを用いることもできる。 The ECU can be specified using the ECU name, identifier, or address. Each ECU may be associated with a predetermined symbol or number and designated by that symbol or number. Prepare a vector with elements equal to the number of ECUs, associate each element with the ECU, set the value of the corresponding element to "0" for ECUs where the virtual ECU can operate, and set the value of the corresponding element to "0" for ECUs that cannot operate. The value of the corresponding element may be set to, for example, "1" and specified by that vector, or the array of elements of the vector may be viewed as a binary number and specified using that value. In this case, the value may be expressed in octal or hexadecimal notation.
 このように稼働先指定コンフィグ370を使用することにより、各仮想マシンの稼働先のECUを適切に制御できる。 By using the operating destination designation config 370 in this way, it is possible to appropriately control the operating destination ECU of each virtual machine.
 図7に優先度コンフィグ372の内容例を示す。図7を参照して、優先度コンフィグ372には、各仮想ECUの優先度が記憶されている。この実施形態においては、高、中、および低の3段階の優先度がある。車載システムの場合、仮想ECUが実現する機能には、高い信頼性が求められる機能、車両にとって必要だが、それほど高い信頼性が求められない機能、あれば好ましいが車両の制御に必須ではない機能など、優先度が異なる機能がある。例えば走る、曲がる、止まるなどの機能は車両の本来の機能に関係するものであり、高い信頼性が求められる。パワーウィンドウの制御、インフォテインメントなど付加的機能の中において比較的優先度が高い機能などは車両としてあった方が望ましい機能だが、それほど高い信頼性が求められるわけではない。さらに、いわゆるインフォテインメント機能と呼ばれる機能において、優先度が比較的低いものなどについては、車両の本来の機能とはいえず、必須というわけではない。 FIG. 7 shows an example of the contents of the priority configuration 372. Referring to FIG. 7, priority config 372 stores the priority of each virtual ECU. In this embodiment, there are three levels of priority: high, medium, and low. In the case of in-vehicle systems, the functions realized by the virtual ECU include functions that require high reliability, functions that are necessary for the vehicle but do not require high reliability, and functions that are desirable but are not essential for vehicle control. , there are features with different priorities. For example, functions such as running, turning, and stopping are related to the original functions of the vehicle and require high reliability. Additional functions such as power window control and infotainment that have a relatively high priority are desirable functions to have in the vehicle, but they do not require very high reliability. Furthermore, among the so-called infotainment functions, those with relatively low priority cannot be said to be the original functions of the vehicle and are not essential.
 上記したように高い信頼性が求められる機能を実現するための仮想ECUについては、リソースを優先的に割り当てる必要がある。一方、車両の制御に必須ではない機能の場合、リソースを割り当てる優先度は低い。各仮想ECUはそれらの機能に対応している。したがって優先度コンフィグ372には、仮想ECUごとにその優先度が記述されている。 As mentioned above, it is necessary to allocate resources preferentially to virtual ECUs for realizing functions that require high reliability. On the other hand, functions that are not essential for vehicle control have a low priority for resource allocation. Each virtual ECU corresponds to those functions. Therefore, the priority config 372 describes the priority for each virtual ECU.
 なお、この例において、優先度は3段階となっている。しかしこの開示はそのような実施形態に限定されるわけではない。優先度としては2段階でよい場合もあるし、4段階以上が必要な場合もあり得る。 Note that in this example, there are three levels of priority. However, this disclosure is not limited to such embodiments. There are cases in which two levels of priority are sufficient, and cases in which four or more levels are necessary.
 図8に初期リソース指定コンフィグ374の内容例を示す。車載システムの起動時には、各仮想ECUを起動する必要がある。起動時の仮想ECUの配置は、上記した制約に従いながら最適となるようにすることが望ましい。そのための条件が初期リソース指定コンフィグ374には記述されている。すなわち、車載システムの起動時には、この初期リソース指定コンフィグ374の記述に従って各仮想ECUへのリソースの初期割当が実行される。 FIG. 8 shows an example of the contents of the initial resource specification configuration 374. When starting the in-vehicle system, it is necessary to start each virtual ECU. It is desirable that the arrangement of the virtual ECUs at the time of startup be optimized while adhering to the above-described constraints. Conditions for this are described in the initial resource specification configuration 374. That is, when the in-vehicle system is started, initial allocation of resources to each virtual ECU is executed according to the description in the initial resource designation configuration 374.
 図8を参照して、例えばこの例においては、初期リソース指定コンフィグ374には、各仮想ECUの起動時に割り当てるべき物理的リソース(CPU(Central Processing Unit)のコア数、メモリサイズなど)が、仮想ECUごとに記述されている。後述するように、コントローラは、この初期リソース指定コンフィグ374の内容を参照して、最適な仮想ECUの配置を決定する。なお、車載システムが起動した後には、仮想ECUの配置は各ECUにおけるリソースの使用状況に応じて動的に変化する。したがって、この実施形態においては、図8に示す初期リソース指定コンフィグ374はあくまでも車載システムの起動時における仮想ECUの配置を決定するために使用されるだけである。もちろん、リソースの配置を動的に変化させながら、できるだけ初期配置を維持するために初期リソース指定コンフィグ374を使用することもできる。 Referring to FIG. 8, for example, in this example, the initial resource specification configuration 374 includes physical resources (the number of CPU (Central Processing Unit) cores, memory size, etc.) to be allocated when each virtual ECU is started. It is described for each ECU. As will be described later, the controller refers to the contents of this initial resource specification configuration 374 and determines the optimal arrangement of virtual ECUs. Note that after the in-vehicle system is started, the arrangement of the virtual ECUs changes dynamically depending on the usage status of resources in each ECU. Therefore, in this embodiment, the initial resource designation configuration 374 shown in FIG. 8 is only used to determine the placement of the virtual ECU at the time of starting the in-vehicle system. Of course, the initial resource specification configuration 374 can also be used to dynamically change the resource placement while maintaining the initial placement as much as possible.
 なお、この実施形態においては、車載システムの起動後の仮想ECUに対して、コントローラはマイグレーションとリソースの削減という2種類の処理を行う。以下、これらについて説明する。 Note that in this embodiment, the controller performs two types of processing, migration and resource reduction, on the virtual ECU after the in-vehicle system is started. These will be explained below.
 まずマイグレーションについて説明する。マイグレーションとは、あるECUにおいて動作している仮想ECUを同一のECUクラスタ内の別のECUに移送することである。このとき、ECUクラスタ内の他の仮想ECUの動作は停止しないが、マイグレーションする仮想ECUについては一瞬(数ミリ秒程度)停止させる。そのため、高い信頼性が要求される仮想ECUについてはマイグレーションを行うべきではない。また、稼働先のECUが指定されている仮想ECUもマイグレーションできない。そこで、この実施形態においては以下の制限を設ける。以下のような制限を設けることにより、重要度が低く、デバイスにも依存しない仮想ECUは積極的にマイグレーションできる。その結果、各ECUに係る負荷を分散でき、各ECUにおいて仮想ECUの安定した動作を実現できる。 First, let's explain migration. Migration refers to moving a virtual ECU operating in a certain ECU to another ECU within the same ECU cluster. At this time, the operations of other virtual ECUs in the ECU cluster are not stopped, but the virtual ECU to be migrated is stopped for a moment (about several milliseconds). Therefore, migration should not be performed on virtual ECUs that require high reliability. Furthermore, a virtual ECU for which the operating destination ECU is specified cannot be migrated. Therefore, in this embodiment, the following restrictions are provided. By setting the following restrictions, virtual ECUs that are of low importance and do not depend on devices can be actively migrated. As a result, the load related to each ECU can be distributed, and stable operation of the virtual ECU can be realized in each ECU.
 優先度「高」の仮想ECU …マイグレーション不可
 優先度「中」の仮想ECU …マイグレーション可
 優先度「低」の仮想ECU …マイグレーション可
 稼働先指定ありの仮想ECU…マイグレーション不可
 稼働先指定なしの仮想ECU…マイグレーション可
Virtual ECU with "high" priority...migration not possible Virtual ECU with "medium" priority...migration possible Virtual ECU with "low" priority...migration possible Virtual ECU with destination specified...migration not possible Virtual ECU without destination specified …migration possible
 図9を参照して、車載ECUクラスタ400が第1ECU410および第2ECU412を含むものとする。第1ECU410においては仮想マシンAが稼働している。そのリソース占有率は30%である。第1ECU410において他の仮想ECUは稼働していない。したがって空きリソースは70%である。なお、「リソース占有率」とは、CPUの占有率とメモリの占有率とをあわせた概念である。リソース占有率をどのように算出するかは設計者の思想により異なる。 Referring to FIG. 9, it is assumed that in-vehicle ECU cluster 400 includes first ECU 410 and second ECU 412. A virtual machine A is running in the first ECU 410. Its resource occupancy rate is 30%. No other virtual ECUs are operating in the first ECU 410. Therefore, free resources are 70%. Note that the "resource occupancy rate" is a concept that combines the CPU occupancy rate and the memory occupancy rate. How to calculate the resource occupancy rate differs depending on the designer's idea.
 一方、仮想マシンB420においては仮想マシンBと仮想マシンCとが稼働しており、そのリソース占有率はそれぞれ40%および55%とする。空きリソースは5%である。コントローラは、ECUの空きリソースの量が所定のしきい値(例えば15%)以下となったときにECUのリソースがひっ迫したと判定するようにプログラムされていたとする。すると、図9に示すような状態の場合、第2ECU412においてリソースがひっ迫していると判定される。 On the other hand, in the virtual machine B420, virtual machine B and virtual machine C are operating, and their resource occupancy rates are assumed to be 40% and 55%, respectively. Free resources are 5%. Assume that the controller is programmed to determine that the ECU's resources are tight when the amount of free resources of the ECU becomes less than a predetermined threshold (for example, 15%). Then, in the case of the state shown in FIG. 9, it is determined that resources are tight in the second ECU 412.
 図9に示す例においては、例えば仮想マシンBおよび仮想マシンCのいずれもマイグレーションが許されているものとする。するとこの場合、コントローラは、マイグレーション後のリソースの配分ができるだけ平準化されるように、マイグレーションする仮想ECUを決定する。すなわち図9に示す例においては、仮想マシンB420が第2ECU412から第1ECU410にマイグレーション422される。その結果、第1ECU410の空きリソースは30%減少するがリソースがひっ迫するわけではなく、第2ECU412においては空きリソースが45%に増加し、仮想マシンCの動作を安定して維持できるようになる。 In the example shown in FIG. 9, it is assumed that migration is permitted for both virtual machine B and virtual machine C, for example. In this case, the controller determines the virtual ECU to be migrated so that the distribution of resources after migration is as leveled as possible. That is, in the example shown in FIG. 9, the virtual machine B420 is migrated 422 from the second ECU 412 to the first ECU 410. As a result, the free resources of the first ECU 410 decrease by 30%, but the resources are not strained, and the free resources of the second ECU 412 increase to 45%, making it possible to stably maintain the operation of the virtual machine C.
 仮に図9に示すマイグレーション422のみによっては、第1ECU410または第2ECU412のリソースがひっ迫する状況が避けられないときには、コントローラは仮想ECUへのリソース割当の削減処理(リソース削減処理)を実行する。 If a situation where the resources of the first ECU 410 or the second ECU 412 become strained cannot be avoided by only the migration 422 shown in FIG. 9, the controller executes a process of reducing resource allocation to the virtual ECU (resource reduction process).
 以下に、リソース削減処理について説明する。なお、リソース処理削減は、対象となる仮想ECUの性能に影響を与える。そこでリソースの割当および削減には以下のような制限を設ける。 The resource reduction process will be explained below. Note that resource processing reduction affects the performance of the target virtual ECU. Therefore, the following restrictions are set for resource allocation and reduction.
 優先度「高」の仮想ECU…制限なくリソースを使用可能。リソース削減の対象外
 優先度「中」の仮想ECU…制限なくリソースを使用可能。リソース削減の対象外
 優先度「低」の仮想ECU…リソースがある限りはリソースを使用可能。ただしリソースひっ迫時にはリソース削減の対象
Virtual ECU with "high" priority...Resources can be used without restrictions. Not subject to resource reduction Virtual ECUs with medium priority...Resources can be used without restrictions. Not subject to resource reduction Virtual ECUs with "low" priority...Resources can be used as long as there are resources. However, when resources are tight, resources are subject to reduction.
 図10に、リソースの割当処理の概略を示す。図10の左側を参照して、例えばECU430において、優先度が高い仮想マシンAによるリソース占有率が60%と高くなった結果、空きリソース440が5%としきい値以下となり、リソースのひっ迫が検出されたものとする。仮想マシンAはさらにリソースを要求する可能性がある。このとき、他のECUに十分なリソースの空きがなく、優先度の低い仮想マシンBを他のECUにマイグレーションできない場合があり得る。そうした場合には、この実施形態においては、図10の右側に示すように、優先度の低い仮想マシンBに割り当てられているリソースを削減することにより、空きリソース442の量をしきい値以上(例えば20%)とすることによりリソースのひっ迫の解消を試みる。 FIG. 10 shows an outline of the resource allocation process. Referring to the left side of FIG. 10, for example, in the ECU 430, the resource occupancy rate by virtual machine A with a high priority is as high as 60%, and as a result, the free resource 440 becomes 5%, which is less than the threshold value, and resource strain is detected. It shall be assumed that Virtual machine A may request further resources. At this time, there may be cases where the other ECUs do not have sufficient free resources and the virtual machine B, which has a low priority, cannot be migrated to the other ECUs. In such a case, in this embodiment, as shown on the right side of FIG. 10, by reducing the resources allocated to the virtual machine B with a low priority, the amount of free resources 442 is increased to a threshold value or more ( For example, 20%), an attempt is made to resolve the resource strain.
 割り当てられたリソースの削減の手法として、CPUの場合ならば、割当コア数の削減が挙げられる。メモリの場合ならば、いわゆるメモリバルーニング、メモリスワップ、およびメモリ圧縮という手法が挙げられる。 In the case of a CPU, one method for reducing allocated resources is to reduce the number of allocated cores. In the case of memory, techniques include so-called memory ballooning, memory swapping, and memory compression.
 C.ハードウェアおよびソフトウェア
 図11に、この実施形態に係る車載システム450を実現するハードウェア構成をブロック図形式により示す。図11を参照して、車載システム450は、車載ネットワーク462と、いずれも車載ネットワーク462に接続された第1ECUクラスタ452、第2ECUクラスタ454、および第3ECUクラスタ456とを含む。これらクラスタにおいて、具体的構成(ECUの数、および稼働する仮想マシンの個数など)は互いに異なる可能性があるが、基本的構成は共通である。したがって以下においては第1ECUクラスタ452について構成および動作を説明する。
C. Hardware and Software FIG. 11 shows, in block diagram form, the hardware configuration that implements the in-vehicle system 450 according to this embodiment. Referring to FIG. 11, in-vehicle system 450 includes an in-vehicle network 462, and a first ECU cluster 452, a second ECU cluster 454, and a third ECU cluster 456, all of which are connected to the in-vehicle network 462. These clusters may have different specific configurations (the number of ECUs, the number of operating virtual machines, etc.), but the basic configuration is common. Therefore, the configuration and operation of the first ECU cluster 452 will be described below.
 第1ECUクラスタ452は、車載ネットワーク462に接続されたECU460と、車載ネットワーク462に接続された1または複数のECU466とを含む。この実施形態においては、ECU460と複数のECU466の各ECUとは同一規格のものである。またECU460は、仮想基盤を提供するECUとしても使用できるし、コントローラECUとしても使用できる。以下の説明においては、ECU460はコントローラECUとし、仮想ECUは複数のECU466において稼働するものとする。 The first ECU cluster 452 includes an ECU 460 connected to the in-vehicle network 462 and one or more ECUs 466 connected to the in-vehicle network 462. In this embodiment, the ECU 460 and each of the plurality of ECUs 466 are of the same standard. Further, the ECU 460 can be used as an ECU that provides a virtual infrastructure, and can also be used as a controller ECU. In the following description, the ECU 460 is assumed to be a controller ECU, and the virtual ECUs are assumed to operate in a plurality of ECUs 466.
 ECU460は実質的にはコンピュータであり、CPU482と、主記憶装置484と、補助記憶装置486と、入出力I/F(Interface)488と、車載ネットワーク通信部490と、これら全てを互いに通信可能接続するバス480とを含む。入出力I/F488には例えばカメラなどの各種デバイス464からの信号およびCAN(Controller Area Network)信号などが入力される。車載ネットワーク通信部490はECU460のための車載ネットワーク462に対するI/Fである。ECU460は、車載ネットワーク通信部490および車載ネットワーク462を介して複数のECU466に属する他のECUの全てと通信可能である。 The ECU 460 is essentially a computer, and includes a CPU 482, a main storage device 484, an auxiliary storage device 486, an input/output I/F (Interface) 488, and an in-vehicle network communication section 490, all of which are communicably connected to each other. bus 480. The input/output I/F 488 receives signals from various devices 464 such as a camera, CAN (Controller Area Network) signals, and the like. The in-vehicle network communication unit 490 is an I/F for the in-vehicle network 462 for the ECU 460. ECU 460 can communicate with all other ECUs belonging to the plurality of ECUs 466 via in-vehicle network communication section 490 and in-vehicle network 462.
 CPU482が実行するプログラムは補助記憶装置486に記憶されている。CPU482はプログラムを実行するときには、補助記憶装置486の指定されたアドレスからそのプログラムを読み出す。CPU482はそのプログラムを主記憶装置484にロードし、その指定されたアドレスから命令を読み出して実行する。CPU482は読み出した命令をデコードする。デコードの結果、CPU482はその命令により指定されるアドレスからデータを読み出し、デコード結果により指定される演算を行ってその結果をその命令により指定されるアドレスに格納する。CPU482は、図示しないプログラムカウンタを持ち、その内容を命令の実行結果に従って更新する。CPU482は、更新されたプログラムカウンタにより指定される主記憶装置484のアドレスから新たな命令を読み出し、実行する。CPU482はこうした処理を実行することにより、プログラムが定義する機能を実現する。 The program executed by the CPU 482 is stored in the auxiliary storage device 486. When CPU 482 executes a program, it reads the program from a specified address in auxiliary storage device 486. The CPU 482 loads the program into the main storage device 484, reads and executes instructions from the specified address. The CPU 482 decodes the read instructions. As a result of the decoding, the CPU 482 reads data from the address specified by the instruction, performs the operation specified by the decoding result, and stores the result at the address specified by the instruction. The CPU 482 has a program counter (not shown) and updates its contents according to the execution results of instructions. The CPU 482 reads a new instruction from the address in the main storage device 484 specified by the updated program counter and executes it. By executing these processes, the CPU 482 realizes the functions defined by the program.
 なお、この実施形態においては、前提としてCPU482はマルチコアを持ち、かつ投機的な命令の実行も可能であるとする。その結果、高速に様々な処理を実行できる。 Note that this embodiment assumes that the CPU 482 has multiple cores and is also capable of executing speculative instructions. As a result, various processes can be executed at high speed.
 仮想ECUの実体は補助記憶装置486にインストールされているファイルである。同じく補助記憶装置486にインストールされている仮想化プログラムを主記憶装置484にロードしてCPU482が実行する。その仮想化プログラムが仮想ECUのファイルを読み込み、その内容に従ってCPUをエミュレートすることにより仮想ECUを実現する。具体的には、仮想化プログラムとしてはホストOSを経由せずコンピュータのハードウェア資源に対するアクセスを直接に提供するハイパーバイザーと呼ばれる種類のものを用いることが望ましい。もちろん、ハイパーバイザーに限らず、ホストOSの上において動作する仮想化プログラムを用いてもよい。 The entity of the virtual ECU is a file installed in the auxiliary storage device 486. The virtualization program, which is also installed in the auxiliary storage device 486, is loaded into the main storage device 484 and executed by the CPU 482. The virtualization program reads the virtual ECU file and emulates the CPU according to its contents, thereby realizing the virtual ECU. Specifically, it is desirable to use a type of virtualization program called a hypervisor that directly provides access to the computer's hardware resources without going through the host OS. Of course, not only the hypervisor but also a virtualization program running on the host OS may be used.
 以下、この実施形態におけるコントローラの機能を実現するプログラムの制御構造について説明する。ここでは、コントローラは図5に示すように、専用のコンピュータであるコントローラECU326において、仮想化環境ではなく、ホストCPUの上において動作するアプリケーションだとする。このプログラムは、コントローラECU326が起動され、起動シーケンス内においてコントローラのプログラム(以下、「コントローラプログラム」という。)がメモリにロードされることにより起動する。このプログラムは、以下に説明する処理を繰返し実行し、仮想マシンの維持に関する何らかの処理要求(マイグレーションおよびリソース削減の要求など)をリアルタイムに検知し実行する。ここにいうリアルタイムの実行とは、情報処理技術におけるいわゆるリアルタイム処理のことである。リアルタイム処理とは、バッチ処理と対比される概念であり、何らかの処理要求が発生したときに即時に処理することをいう。 Hereinafter, the control structure of the program that implements the functions of the controller in this embodiment will be explained. Here, as shown in FIG. 5, the controller is assumed to be an application that runs on a host CPU, not in a virtualized environment, in the controller ECU 326, which is a dedicated computer. This program is activated when the controller ECU 326 is activated and a controller program (hereinafter referred to as "controller program") is loaded into memory during the activation sequence. This program repeatedly executes the process described below, and detects and executes any processing requests related to maintaining the virtual machine (such as requests for migration and resource reduction) in real time. The real-time execution referred to here refers to so-called real-time processing in information processing technology. Real-time processing is a concept that is contrasted with batch processing, and refers to processing immediately when a processing request occurs.
 図12を参照して、コントローラプログラムは、起動直後に記憶領域の確保および初期化、様々な制御用変数の初期化などを行った後、仮想ECUの稼働先指定コンフィグ370(図6)を読み込むステップ500と、仮想ECUの優先度コンフィグ372(図7)を読み込むステップ502と、仮想ECUの初期リソース指定コンフィグ374(図8)を読み込むステップ504とを含む。コントローラプログラムは、これらコンフィグファイルから読み出した情報をプログラム内の各変数に格納する。 Referring to FIG. 12, immediately after startup, the controller program secures and initializes a storage area, initializes various control variables, etc., and then reads the virtual ECU operating destination designation configuration 370 (FIG. 6). The process includes step 500, step 502 of reading the virtual ECU's priority configuration 372 (FIG. 7), and step 504 of reading the virtual ECU's initial resource specification configuration 374 (FIG. 8). The controller program stores the information read from these configuration files in each variable within the program.
 このプログラムはさらに、ステップ504の後に、仮想ECUを全て起動するステップ506を含む。仮想ECUを全て起動するためには、上記したステップ500、502および504において読み込んだ情報が必要になる。 This program further includes, after step 504, step 506 of activating all virtual ECUs. In order to start all virtual ECUs, the information read in steps 500, 502, and 504 described above is required.
 このプログラムはさらに、ステップ506の後に、各仮想ECUに割り当てられたリソースの最適化を行うステップ508を含む。ステップ508は、車載システムが動作している間、繰り返し実行される。 This program further includes, after step 506, step 508 of optimizing the resources allocated to each virtual ECU. Step 508 is executed repeatedly while the on-vehicle system is operating.
 このプログラムはさらに、車載システムの停止が指示され、ステップ508の処理が終了した後に、全ての仮想ECUを終了しコントローラプログラムの実行を終了するステップ510を含む。 This program further includes step 510 of terminating all virtual ECUs and terminating the execution of the controller program after the in-vehicle system is instructed to stop and the process of step 508 is completed.
 図13を参照して、仮想ECUを起動するステップ506は、稼働先指定コンフィグ370により指定される仮想ECU配置パターンを全て抽出するステップ530と、ステップ530において抽出された配置パターンから、各単体ECUにおける高優先マシンの配置数が最小となる配置パターンに絞り込むステップ532とを含む。 Referring to FIG. 13, step 506 of activating the virtual ECU includes a step 530 of extracting all virtual ECU placement patterns specified by the operating destination specification config 370, and a step 530 of extracting all virtual ECU placement patterns specified by the operation destination specification configuration 370, and a Step 532 of narrowing down the layout pattern to a layout pattern that minimizes the number of high-priority machines.
 このプログラムはさらに、初期リソース指定コンフィグ374の内容に基づいて、ステップ532において残った配置パターンの各々について、各ECUにおけるリソース使用率を算出するステップ534を含む。ここにいうリソース使用率とは、前述したとおり、CPU使用率とメモリ利用率とをあわせた概念である。このプログラムはさらに、ステップ534において算出されたCPU使用率とメモリ使用率の両方が規定値以下になる配置パターンが存在するか否かに従って制御の流れを分岐させるステップ536を含む。ここにいう規定値は、メモリ使用率の規定値である第1規定値とメモリ使用率の規定値である第2規定値の双方のことをいう。この2種類の規定値は同じである必要はない。なお、以下の説明において規定値が複数種類出現するが、それらの値は同じでもよいし、異なってもよい。 This program further includes step 534 of calculating the resource usage rate in each ECU for each of the placement patterns remaining in step 532 based on the contents of the initial resource specification config 374. As mentioned above, the resource usage rate referred to here is a concept that combines the CPU usage rate and the memory usage rate. This program further includes a step 536 in which the flow of control is branched depending on whether there is an arrangement pattern in which both the CPU usage rate and the memory usage rate calculated in step 534 are equal to or less than a specified value. The specified value here refers to both the first specified value, which is the specified value of the memory usage rate, and the second specified value, which is the specified value of the memory usage rate. These two types of specified values do not need to be the same. Note that in the following description, multiple types of specified values appear, but these values may be the same or different.
 このプログラムはさらに、ステップ536における判定が否定的なときに、CPU使用率が第3規定値以下になる配置パターンが存在するか否かに従って制御の流れを分岐させるステップ538と、ステップ538の判定が否定的なときに、メモリ使用率が第4規定値以下になる配置パターンが存在するか否かに従って制御の流れを分岐させるステップ540とを含む。この実施形態においては、第3規定値は、ステップ536における第1規定値と同じである。しかし、両者は必ずしも同じでなくてもよい。例えば第3規定値が第1規定値以下でもよい。同様に、この実施形態において第4規定値は第2規定値と同一だが、これらは同一である必要はない。例えば第4規定値が第2規定値以下であってもよい。 This program further includes a step 538 in which, when the determination in step 536 is negative, the flow of control is branched depending on whether there is an arrangement pattern in which the CPU usage rate is equal to or less than a third specified value; and a determination in step 538. is negative, branching the flow of control according to whether or not there is an arrangement pattern in which the memory usage rate is equal to or less than a fourth specified value. In this embodiment, the third specified value is the same as the first specified value in step 536. However, the two do not necessarily have to be the same. For example, the third specified value may be less than or equal to the first specified value. Similarly, although in this embodiment the fourth specified value is the same as the second specified value, they need not be the same. For example, the fourth specified value may be less than or equal to the second specified value.
 このプログラムは、ステップ536、538または540における判定が肯定のときに、配置パターンをこれらステップにおいて指定された条件に該当するものに絞り込むステップ542と、ステップ542において残った配置パターンから、全てのECUの間におけるCPU使用率の差が最も少ない配置パターンを選択するステップ544とを含む。このプログラムはさらに、ステップ544において選択された配置パターンに従って仮想ECUを各ECUに配分し、全仮想ECUを起動してステップ506を終了するステップ546を含む。 When the determination in step 536, 538, or 540 is affirmative, this program narrows down the layout patterns to those that meet the conditions specified in these steps, step 542, and selects all ECUs from the remaining layout patterns in step 542. and step 544 of selecting an arrangement pattern with the smallest difference in CPU usage between the two. The program further includes a step 546 that allocates the virtual ECUs to each ECU according to the placement pattern selected in step 544, activates all virtual ECUs, and ends step 506.
 ステップ540の判定が否定的な場合には、仮想ECUに関する適切な配置が見つからない場合の処理をステップ548において実行する。ステップ548においては、例えば低優先度の仮想ECUについて起動しないようにコンフィグファイルを変更して再度ステップ506を実行することなどが考えられる。または、低優先度の仮想ECUについて、割り当てるリソースを一律に削減して再度ステップ506を実行することもできる。場合によっては、仮想ECUが起動できないと表示してユーザの指示を受けるようにしてもよい。 If the determination in step 540 is negative, processing in the case where an appropriate placement for the virtual ECU is not found is executed in step 548. In step 548, for example, the configuration file may be changed so that the virtual ECU with low priority is not activated, and step 506 may be executed again. Alternatively, it is also possible to uniformly reduce the allocated resources for low priority virtual ECUs and execute step 506 again. Depending on the situation, it may be possible to display that the virtual ECU cannot be started and to receive instructions from the user.
 なお、ステップ544における「CPU使用率の差が最も少ない配置パターン」における「差」としては、全てのECUにおいて各配置パターンにおけるCPU使用率を算出した後の、それら配置パターンの各々におけるCPU使用率のレンジ(最大値と最小値との差)、平均偏差、または分散のいずれを用いてもよい。 Note that the "difference" in the "placement pattern with the smallest difference in CPU usage rate" in step 544 is the CPU usage rate in each of the layout patterns after calculating the CPU usage rate in each layout pattern for all ECUs. Any of the range (difference between maximum and minimum value), average deviation, or variance may be used.
 図14を参照して、図12のステップ508は、各ECUのリソース使用率を監視するステップ600と、ステップ600における監視の結果、リソースがひっ迫しているECUが存在しているか否かに従って制御の流れを分岐させるステップ602とを含む。ステップ602における判定は、例えば、あるECUにおけるCPU使用率が規定値を超えているか、またはメモリ使用率が規定値を超えているときに肯定的となる。ステップ602における判定が否定的ならば制御はステップ600に戻り、リソースの監視が再実行される。 Referring to FIG. 14, step 508 in FIG. 12 includes step 600 of monitoring the resource usage rate of each ECU, and control according to whether or not there is an ECU whose resources are strained as a result of the monitoring in step 600. step 602 of branching the flow of the flow. The determination in step 602 becomes positive, for example, when the CPU usage rate of a certain ECU exceeds a specified value or the memory usage rate exceeds a specified value. If the determination in step 602 is negative, control returns to step 600 and resource monitoring is performed again.
 このプログラムはさらに、ステップ602における判定が肯定的なときに、リソースがひっ迫していると判定されたECUにおいて動作している仮想ECUのいずれかを他のECUにマイグレーションするステップ604を含む。ステップ604の処理の内容については、図15を参照して後述する。 This program further includes step 604, when the determination in step 602 is positive, migrating any of the virtual ECUs operating in the ECU determined to be under resource pressure to another ECU. The details of the process in step 604 will be described later with reference to FIG. 15.
 このプログラムはさらに、ステップ604の後に、リソースのひっ迫が解消しているか否かに従って制御の流れを分岐させるステップ606を含む。ステップ606における判定は、車載システムの全てのECUにおいてリソース使用率が規定値以下か否かに従って行われる。ステップ606における判定が肯定的ならば制御はステップ600に戻り、リソースの監視が再開される。このプログラムはさらに、ステップ606における判定が否定的であることに応答して実行され、低優先度マシンのリソースを削減するステップ608を含む。この後、制御はステップ600に戻る。ステップ608の内容については図16を参照して後述する。このようにこの実施形態においては、コントローラは、リソースのひっ迫が発生しているか否かを様々な指標と規定値との比較により常時監視する。もしも指標と規定値との比較の結果がリソースのひっ迫が発生していることを示す場合には、コントローラはひっ迫を解消することが必要と判断し、そのための処理を即時に実行する。 The program further includes, after step 604, step 606 of branching the flow of control depending on whether resource pressure has been resolved. The determination in step 606 is made according to whether the resource usage rate in all ECUs of the in-vehicle system is equal to or less than a specified value. If the determination in step 606 is positive, control returns to step 600 and resource monitoring is resumed. The program further includes step 608, executed in response to the negative determination in step 606, to reduce resources on the low priority machine. After this, control returns to step 600. The details of step 608 will be described later with reference to FIG. As described above, in this embodiment, the controller constantly monitors whether or not resource strain is occurring by comparing various indicators with prescribed values. If the result of the comparison between the index and the specified value indicates that resource strain has occurred, the controller determines that it is necessary to relieve the strain, and immediately executes processing for that purpose.
 ステップ604におけるマイグレーションを実行するプログラムの制御構造について図15を参照して説明する。ステップ604は、リソースがひっ迫しているECUにおいて稼働している、中・低優先度の仮想ECUがあるか否かに従って制御の流れを分岐させるステップ650を含む。ステップ650における判定が否定的な場合にはステップ604の実行は終了する。 The control structure of the program that executes migration in step 604 will be explained with reference to FIG. 15. Step 604 includes step 650 of branching the flow of control depending on whether there is a medium- or low-priority virtual ECU operating in the resource-constrained ECU. If the determination in step 650 is negative, execution of step 604 ends.
 ステップ604はさらに、ステップ650における判定が肯定的なときに、そのマイグレーション可能な仮想ECUを抽出するステップ652と、ステップ652において抽出された仮想ECUについて、実行可能な全マイグレーションパターンを抽出し、その各パターンに対してマイグレーション後のリソース使用率の予測を算出するステップ654とを含む。 Step 604 further includes, when the determination in step 650 is positive, a step 652 of extracting the migratable virtual ECU, and extracting all executable migration patterns for the virtual ECU extracted in step 652. and step 654 of calculating a predicted post-migration resource usage rate for each pattern.
 ステップ604はさらに、ステップ654における処理の結果、CPU使用率とメモリ使用率の両方が規定値以下になる組み合わせが存在するか否かに従って制御の流れを分岐させるステップ656と、ステップ656における判定が肯定的なときに、ステップ656において見出された組み合わせを実現するように対象の仮想ECUのマイグレーションを実行してステップ604を終了するステップ658とを含む。なおステップ656におけるCPU使用率の規定値を第5規定値とし、メモリ使用率の規定値を第6規定値とする。 Step 604 further includes a step 656 in which the flow of control is branched depending on whether or not there is a combination in which both the CPU usage rate and the memory usage rate are equal to or less than a specified value as a result of the processing in step 654, and the determination in step 656 is performed. If affirmative, step 658 executes migration of the target virtual ECU so as to realize the combination found in step 656, and ends step 604. Note that the specified value of the CPU usage rate in step 656 is set as the fifth specified value, and the specified value of the memory usage rate is set as the sixth specified value.
 ステップ604はさらに、ステップ656の判定が否定的なときに、CPU使用率が第7規定値以下になる組み合わせが存在するか否かに従って制御の流れを分岐させるステップ660と、ステップ660における判定が肯定的なときに、ステップ660において見出された組み合わせを実現するように対象の仮想ECUのマイグレーションを実行してステップ604を終了するステップ662とを含む。 Step 604 further includes a step 660 in which, when the determination in step 656 is negative, the flow of control is branched depending on whether a combination exists in which the CPU usage rate is equal to or less than a seventh predetermined value; If the answer is yes, the step 662 executes migration of the target virtual ECU so as to realize the combination found in step 660, and ends step 604.
 ステップ604はさらに、ステップ660における判定が否定的なときに、メモリ使用率が第8規定値以下になる組み合わせがあるか否かに従って制御の流れを分岐させるステップ664と、ステップ664における判定が肯定的なときに、ステップ664において見出された組み合わせを実現するように対象の仮想ECUのマイグレーションを実行してステップ604を終了するステップ666とを含む。ステップ664における判定が否定的ならマイグレーションをすることなくステップ604を終了する。 Step 604 further includes a step 664 in which, when the determination in step 660 is negative, the flow of control is branched depending on whether there is a combination in which the memory usage rate is equal to or less than an eighth predetermined value; and step 666, in which the target virtual ECU is migrated so as to implement the combination found in step 664, and step 604 is ended. If the determination in step 664 is negative, step 604 is ended without migration.
 ステップ658および662またはステップ664において、可能な組み合わせが複数個ある場合には、図13のステップ544と同様の基準を用いて組み合わせを選択すればよい。 In steps 658 and 662 or step 664, if there are multiple possible combinations, the combinations may be selected using criteria similar to step 544 in FIG.
 図16を参照して、図14のステップ608は、リソースのひっ迫が検出されたECU(対象ECU)において稼働している全ての低優先マシンを抽出するステップ700と、対象ECUのCPU使用率が第9規定値以上か否かに従って制御の流れを分岐させるステップ702と、ステップ702における判定が肯定的なときに、対象ECUにおいて稼働している全ての低優先マシンのCPU使用量を一律に一定量だけ削減するステップ704とを含む。ステップ702における判定が否定的なときは制御はステップ706に進む。 Referring to FIG. 16, step 608 in FIG. 14 includes step 700 of extracting all low-priority machines operating in the ECU (target ECU) in which resource tightness has been detected, and Step 702 of branching the flow of control according to whether or not it is equal to or greater than a ninth specified value; and when the determination in step 702 is positive, uniformly keeping the CPU usage of all low-priority machines operating in the target ECU constant; and step 704 of reducing the amount by the amount. If the determination in step 702 is negative, control proceeds to step 706.
 ステップ608はさらに、ステップ704の後に、対象ECUにおけるメモリ使用率が第10規定値以上か否かに従って制御の流れを分岐させるステップ706と、ステップ706における判定が肯定的なときに、対象ECUにおける全ての低優先マシンのメモリ使用量を一律に一定割合(または一定量)だけ削減してステップ608の実行を終了するステップ708とを含む。ステップ706における判定が否定的なときにはステップ608の実行は終了する。 Step 608 further includes, after step 704, a step 706 in which the flow of control is branched depending on whether the memory usage rate in the target ECU is equal to or higher than a tenth specified value, and when the determination in step 706 is affirmative, the control flow in the target ECU is branched. Step 708 includes uniformly reducing the memory usage of all low-priority machines by a certain percentage (or a certain amount) and ending the execution of Step 608. When the determination in step 706 is negative, execution of step 608 ends.
 2.動作
 以上に述べた構成を持つ第1ECUクラスタ452(図11)は以下のように動作する。
2. Operation The first ECU cluster 452 (FIG. 11) having the configuration described above operates as follows.
 A.起動時
 図11を参照して、車載システム450の電源が投入されると、第1ECUクラスタ452のECU460および複数のECU466が起動する。複数のECU466の各々においては、ハイバーパイザが起動し、仮想ECUの起動指示を待ち受ける状態となる。
A. At Startup Referring to FIG. 11, when the power of in-vehicle system 450 is turned on, ECU 460 of first ECU cluster 452 and a plurality of ECUs 466 are started. In each of the plurality of ECUs 466, the hyperpizer is activated and enters a state in which it waits for an instruction to activate the virtual ECU.
 コントローラECUとして動作するECU460は以下のように動作する。なお、稼働先指定コンフィグ370、優先度コンフィグ372、および初期リソース指定コンフィグ374は、いずれも補助記憶装置486に格納されているものとする。 The ECU 460 that operates as a controller ECU operates as follows. It is assumed that the operation destination specification config 370, the priority config 372, and the initial resource specification config 374 are all stored in the auxiliary storage device 486.
 図12を参照して、ECU460は稼働先指定コンフィグ370、優先度コンフィグ372および初期リソース指定コンフィグ374を補助記憶装置486から読み出して(ステップ500、502および504)、プログラムの所定変数に各指定値を代入する。 Referring to FIG. 12, ECU 460 reads operating destination designation config 370, priority config 372, and initial resource designation config 374 from auxiliary storage device 486 ( steps 500, 502, and 504), and sets each designated value to a predetermined variable of the program. Substitute.
 図13を参照して、ECU460は、ステップ530、532および534を実行することにより、仮想ECUの可能な配置パターンの各々について、リソース使用率を算出する。さらにステップ536、538または540において、仮想ECUの配置パターンであって条件に該当するものがあれば、ステップ542において仮想ECUの配置パターンをその配置パターンに絞り込む。さらにステップ544において、ECU460は、残った配置パターンの各々について、第1ECUクラスタ452内の仮想ECU用の各ECUにおけるCPU使用率を算出する。さらに、ECU460は、配置パターンの各々について、各ECUにおけるCPU使用率の差が最も少ない配置パターンを選択する。ステップ546においてECU460は、選択された配置パターンに従って各仮想ECUをそれぞれのECUに配分して起動し、ステップ506の処理を終了する。 Referring to FIG. 13, ECU 460 calculates the resource usage rate for each possible arrangement pattern of virtual ECUs by executing steps 530, 532, and 534. Further, in steps 536, 538, or 540, if there is a virtual ECU arrangement pattern that meets the conditions, then in step 542, the virtual ECU arrangement pattern is narrowed down to that arrangement pattern. Furthermore, in step 544, the ECU 460 calculates the CPU usage rate of each virtual ECU in the first ECU cluster 452 for each of the remaining arrangement patterns. Further, for each of the layout patterns, the ECU 460 selects the layout pattern in which the difference in CPU usage rate among the ECUs is the smallest. In step 546, the ECU 460 allocates and activates each virtual ECU according to the selected arrangement pattern, and ends the process in step 506.
 B.監視およびリソース調整
 図12に戻り、ECU460はステップ508のリソース最適化処理を開始する。図14を参照して、ECU460は各ECUにおけるリソースを監視する。具体的には、ECU460は、各ECUにおけるCPU使用率とメモリ使用率とを算出する。
B. Monitoring and Resource Adjustment Returning to FIG. 12, ECU 460 starts resource optimization processing in step 508. Referring to FIG. 14, ECU 460 monitors resources in each ECU. Specifically, ECU 460 calculates the CPU usage rate and memory usage rate of each ECU.
 ステップ602においてECU460は、リソースがひっ迫しているECUが存在しているか否かを判定する。そのようなECUが存在していないときには制御はステップ600に戻り、ECU460はリソース監視を再開する。リソースがひっ迫しているECUが存在しているときには、ECU460はステップ604において図15に示すマイグレーション処理を実行する。 In step 602, the ECU 460 determines whether there is an ECU whose resources are tight. If no such ECU exists, control returns to step 600 and ECU 460 resumes resource monitoring. If there is an ECU that is under resource pressure, the ECU 460 executes the migration process shown in FIG. 15 in step 604.
 図15を参照して、ステップ604のマイグレーション処理において、ECU460は、図14のステップ602においてリソースのひっ迫が検出されたECU(対象ECU)において稼働している、マイグレーション可能な低優先マシンを選択する。ECU460はさらに、ステップ654において、ステップ652において抽出された中・低優先マシンに関して実行可能な全てのマイグレーションパターンを抽出する。ECU460はさらに同じくステップ654において、抽出されたマイグレーションパターンの各々に関して、マイグレーション後のリソース使用率を算出する。このリソース使用率予測に基づいて、ステップ656、658、660、662、664および666により、実行可能なマイグレーションが実行される。マイグレーションしてもリソース使用率予測によりリソースのひっ迫が解消されない場合にはステップ656、660および664における判定はいずれも否定的となり、マイグレーションは実行されない。 Referring to FIG. 15, in the migration process of step 604, ECU 460 selects a migratable low-priority machine that is operating in the ECU (target ECU) in which resource strain was detected in step 602 of FIG. . Furthermore, in step 654, ECU 460 extracts all executable migration patterns for the medium and low priority machines extracted in step 652. Further, in step 654, ECU 460 calculates the post-migration resource usage rate for each of the extracted migration patterns. Based on this resource utilization prediction, executable migrations are performed by steps 656, 658, 660, 662, 664, and 666. If the resource pressure is not resolved by the resource usage rate prediction even after migration, the determinations in steps 656, 660, and 664 are all negative, and migration is not performed.
 再び図14を参照して、ステップ604を実行した結果、リソースのひっ迫が解消すればステップ606の判定が肯定的となりリソース最適化処理は終了する。リソースのひっ迫が解消されなければステップ608が実行される。 Referring again to FIG. 14, if the resource pressure is resolved as a result of executing step 604, the determination in step 606 will be affirmative and the resource optimization process will end. If the resource pressure is not resolved, step 608 is executed.
 図16を参照して、ステップ608においては、リソースのひっ迫が検出されたECUにおいて、CPU使用率が第9規定値以上ならば(ステップ702における判定が肯定的)、そのECU上において稼働している全ての低優先マシンのCPU使用量が一律に削減される(ステップ704)。さらに、そのECUにおいてメモリの使用量が第10規定値以上ならば(ステップ706における判定が肯定的)、そのECU上において稼働している全ての低優先マシンについて、それらのメモリ使用量が削減される。 Referring to FIG. 16, in step 608, if the CPU usage rate is equal to or higher than the ninth predetermined value in the ECU for which resource tightness has been detected (the determination in step 702 is affirmative), the ECU is operated on. The CPU usage of all low-priority machines is uniformly reduced (step 704). Furthermore, if the amount of memory used in that ECU is equal to or greater than the tenth specified value (the determination in step 706 is affirmative), the amount of memory used by all low-priority machines operating on that ECU is reduced. Ru.
 ステップ702における判定が否定的ならステップ608においてはリソースの削減処理は実行されない。ステップ702における判定が肯定的でステップ706における判定が否定的なら、低優先マシンのCPU使用量は削減されるがメモリ使用量は削減されない。 If the determination in step 702 is negative, the resource reduction process is not executed in step 608. If the determination in step 702 is positive and the determination in step 706 is negative, the CPU usage of the low priority machine is reduced, but the memory usage is not reduced.
 以上のように、この実施形態によれば、複数のECUによりECUクラスタを構成し、コントローラが各ECUにおいて実行される仮想ECUを管理する。この管理においてコントローラは、ECUにおいてリソースのひっ迫が生じたときには、そのECUから他のECUに仮想ECUをマイグレーションさせることにより、そのECUにおけるリソースのひっ迫を解消する。マイグレーションをしてもリソースのひっ迫が解消しないときには、コントローラは、そのECUにおいて稼働している低優先仮想ECUのリソースを削減する。これにより、そのECUにおいて稼働している他のより優先度が高いマシンがそのリソースを利用できるようになる。コントローラがこうした管理を行うことにより、ECUの負荷が動的に再配分され、車載システムの機能を維持できる。 As described above, according to this embodiment, a plurality of ECUs constitute an ECU cluster, and the controller manages the virtual ECUs executed in each ECU. In this management, when a resource strain occurs in an ECU, the controller migrates a virtual ECU from that ECU to another ECU to relieve the resource strain in that ECU. If the resource pressure is not resolved even after migration, the controller reduces the resources of the low-priority virtual ECU operating in that ECU. This allows other higher priority machines running on that ECU to use that resource. This management by the controller dynamically redistributes the ECU load and maintains the functionality of the in-vehicle system.
 第2変形例
 上記実施形態においては、ECUクラスタは車載システムに1つあることを前提としている。しかしこの開示はそのような実施形態には限定されない。車載システムが複数のECUクラスタを持つようにしてもよい。この場合、各ECUクラスタはそれぞれコントローラを持ち、それぞれ独立に各ECUクラスタにおける負荷の動的再配分を行う。その結果、車載システムの全体規模が大きくなり、ECUの数が多くなっても、負荷の動的再配分が容易に行える。
Second Modified Example In the above embodiment, it is assumed that there is one ECU cluster in the in-vehicle system. However, this disclosure is not limited to such embodiments. The in-vehicle system may have multiple ECU clusters. In this case, each ECU cluster has a controller, and dynamically redistributes the load in each ECU cluster independently. As a result, even if the overall scale of the in-vehicle system increases and the number of ECUs increases, dynamic load redistribution can be easily performed.
 また上記実施形態においては、各ECUにおける、仮想ECUに関する情報はECU間において同期化されている。しかしこの開示はそのような実施形態には限定されない。そのような同期化を常時行うのではなく、マイグレーションの直前に行うようにしてもよい。 Furthermore, in the above embodiment, information regarding the virtual ECU in each ECU is synchronized between the ECUs. However, this disclosure is not limited to such embodiments. Instead of performing such synchronization all the time, it may be performed immediately before migration.
 上記実施形態においては、仮想ECUに関する配置構成情報は3つのコンフィグファイルに記述されている。しかし、この開示はそのような実施形態には限定されない。配置構成情報は1つのコンフィグファイルに記述されていてもよいし、2つ、または4つ以上のコンフィグファイルに記述されていてもよい。また仮想ECUに関する配置構成情報は、ファイルに記述する必要はない。配置構成情報は例えばデータベースに格納されていてもよい。このデータベースは、ECUクラスタごとに設けられてもよいし、車載システムの全体に1つのみ設けられてもよい。車載システムの全体にデータベースを1つのみ設ける場合には、ECUクラスタに識別子を割り当て、データベースの各レコードにその識別子のフィールドを設ける必要がある。また、コントローラプログラムのソースプログラムの内部において、これら仮想ECUに関する配置構成情報を、リテラルとしてまとめて記述してもよい。この場合にはコントローラプログラムをコンパイルする必要が生じるが、配置構成情報の内容を変更すること自体は容易に行える。さらに、例えばECUクラスタごとに、呼び出すとそのECUクラスタにおける配置構成情報、またはそれらの記憶アドレスを示すポインタを一定のフォーマットにより戻り値として戻すようなプログラムをコントローラプログラムとは別に作成してもよい。この場合には、コントローラプログラム自体の再コンパイルは不要となる。 In the above embodiment, the layout configuration information regarding the virtual ECU is described in three configuration files. However, this disclosure is not limited to such embodiments. The arrangement information may be written in one configuration file, or may be written in two, four or more configuration files. Further, the arrangement information regarding the virtual ECU does not need to be written in the file. The arrangement information may be stored in a database, for example. This database may be provided for each ECU cluster, or only one database may be provided for the entire in-vehicle system. If only one database is provided for the entire in-vehicle system, it is necessary to assign an identifier to each ECU cluster and provide a field for that identifier in each record of the database. Furthermore, the arrangement and configuration information regarding these virtual ECUs may be collectively written as literals within the source program of the controller program. In this case, it is necessary to compile the controller program, but changing the contents of the layout configuration information itself can be done easily. Furthermore, for example, for each ECU cluster, a program may be created separately from the controller program that, when called, returns the arrangement configuration information in that ECU cluster or a pointer indicating their storage address in a certain format as a return value. In this case, there is no need to recompile the controller program itself.
 上記実施形態においては、コンフィグファイルには具体的な仮想ECUの名称または識別子ごとに配置構成情報を記述している。しかしこの開示はそのような実施形態には限定されない。例えば仮想マシンの優先度、初期確保リソースまたはそれらの組み合わせについては、所定のクラスを予め定義してもよい。この場合には、優先度、初期確保リソースまたはそれらの組み合わせをそのクラス名またはクラスの識別子により指定するようにすればよい。 In the above embodiment, the configuration file describes the layout configuration information for each specific virtual ECU name or identifier. However, this disclosure is not limited to such embodiments. For example, a predetermined class may be defined in advance for virtual machine priority, initially secured resources, or a combination thereof. In this case, the priority, the initially secured resource, or a combination thereof may be specified using the class name or class identifier.
 今回開示された実施の形態は全ての点において例示であって制限的なものではないと考えられるべきである。本開示の範囲は、開示の詳細な説明の記載により示されるわけではなく、請求の範囲の各請求項によって示され、請求の範囲の文言と均等の意味および範囲内での全ての変更が含まれることが意図される。 The embodiments disclosed this time should be considered to be illustrative in all respects and not restrictive. The scope of the present disclosure is not indicated by the detailed description of the disclosure, but is indicated by each claim, and includes all changes within the scope and meanings equivalent to the wording of the claims. It is intended that
42、100、430、460 ECU
60、170、172 物理ハードウェア層
62 仮想化基盤層
64 仮想マシン層
110、150、220、320、410 第1ECU
112、152、224、324、412 第2ECU
140、400 車載ECUクラスタ
154 同期処理部
176、422 マイグレーション
200、300、450 車載システム
222、322、462 車載ネットワーク
230 センサ
232 車体制御用信号線
240、340 コントローラ
242、342 記憶部
326 コントローラECU
370 稼働先指定コンフィグ
372 優先度コンフィグ
374 初期リソース指定コンフィグ
420 仮想マシンB
440、442 空きリソース
452 第1ECUクラスタ
454 第2ECUクラスタ
456 第3ECUクラスタ
464 各種デバイス
466 複数のECU
480 バス
482 CPU
484 主記憶装置
486 補助記憶装置
488 入出力I/F
490 車載ネットワーク通信部
 
42, 100, 430, 460 ECU
60, 170, 172 Physical hardware layer 62 Virtualization infrastructure layer 64 Virtual machine layer 110, 150, 220, 320, 410 1st ECU
112, 152, 224, 324, 412 2nd ECU
140, 400 On-board ECU cluster 154 Synchronization processing section 176, 422 Migration 200, 300, 450 On- board system 222, 322, 462 On-board network 230 Sensor 232 Vehicle control signal line 240, 340 Controller 242, 342 Storage section 326 Controller ECU
370 Operating destination specification configuration 372 Priority configuration 374 Initial resource specification configuration 420 Virtual machine B
440, 442 Free resources 452 First ECU cluster 454 Second ECU cluster 456 Third ECU cluster 464 Various devices 466 Multiple ECUs
480 bus 482 CPU
484 Main storage device 486 Auxiliary storage device 488 Input/output I/F
490 In-vehicle network communication department

Claims (9)

  1.  互いに通信可能な第1情報処理装置および第2情報処理装置を含む情報処理装置クラスタを含む車載システムであって、
     前記第1情報処理装置および前記第2情報処理装置の各々は、
     コンピュータハードウェア、および
     前記コンピュータハードウェア上において動作する仮想化基盤を含み、
     前記車載システムはさらに、前記第1情報処理装置および前記第2情報処理装置の前記仮想化基盤において、1または複数の仮想マシンを動作させるためのコントローラを含み、前記コントローラは、前記第1情報処理装置および前記第2情報処理装置におけるハードウェアリソースの使用状況を監視し、前記ハードウェアリソースの使用状況に応じて、前記1または複数の仮想マシンの構成をリアルタイムに変更する、車載システム。
    An in-vehicle system including an information processing device cluster including a first information processing device and a second information processing device that can communicate with each other,
    Each of the first information processing device and the second information processing device,
    computer hardware; and a virtualization infrastructure operating on the computer hardware;
    The in-vehicle system further includes a controller for operating one or more virtual machines in the virtualization infrastructure of the first information processing device and the second information processing device, and the controller is configured to operate the first information processing device. An in-vehicle system that monitors the usage status of hardware resources in the apparatus and the second information processing apparatus, and changes the configuration of the one or more virtual machines in real time according to the usage status of the hardware resources.
  2.  前記コントローラは、前記情報処理装置クラスタに含まれる、前記第1情報処理装置および前記第2情報処理装置と通信可能で、前記第1情報処理装置および前記第2情報処理装置とは独立に設けられたコントローラ装置を含む、請求項1に記載の車載システム。 The controller is capable of communicating with the first information processing device and the second information processing device included in the information processing device cluster, and is provided independently of the first information processing device and the second information processing device. The in-vehicle system according to claim 1, comprising a controller device.
  3.  前記コントローラは、前記第1情報処理装置の前記仮想化基盤において実行される仮想コントローラを含む、請求項1に記載の車載システム。 The in-vehicle system according to claim 1, wherein the controller includes a virtual controller executed on the virtualization infrastructure of the first information processing device.
  4.  前記コントローラは、
     前記1または複数の仮想マシンの配置構成を規定する配置構成情報を記録する配置構成記録部と、
     前記第1情報処理装置および前記第2情報処理装置の稼働状況を監視し、前記1または複数の仮想マシンが安定して動作するように、前記情報処理装置クラスタの内部における前記1または複数の仮想マシンの配置をリアルタイムに決定し、必要ならば変更する配置制御部とを含む、請求項1から請求項3のいずれか1項に記載の車載システム。
    The controller includes:
    a layout configuration recording unit that records layout configuration information that defines a layout configuration of the one or more virtual machines;
    The operating status of the first information processing device and the second information processing device is monitored, and the one or more virtual machines inside the information processing device cluster are monitored so that the one or more virtual machines operate stably. The in-vehicle system according to any one of claims 1 to 3, further comprising a placement control section that determines the placement of machines in real time and changes the placement if necessary.
  5.  前記配置構成情報は、
     前記1または複数の仮想マシンにおいて、特定の稼働先である情報処理装置において稼働させるべき仮想マシンと、前記特定の稼働先である情報処理装置を指定する情報とを記録した稼働先指定情報、
     前記1または複数の仮想マシンに関し、前記ハードウェアリソースを割り当てる際の優先度を指定する優先度情報、
     前記1または複数の仮想マシンの起動時の前記ハードウェアリソースの初期割当を指定する初期リソース情報、または
     前記稼働先指定情報、前記優先度情報、および前記初期リソース情報のうち、少なくともいずれか2つ、を含む、請求項4に記載の車載システム。
    The arrangement configuration information is
    Operation destination designation information that records a virtual machine to be operated in an information processing device that is a specific operation destination in the one or more virtual machines, and information that specifies the information processing device that is the specific operation destination;
    Priority information specifying a priority when allocating the hardware resources with respect to the one or more virtual machines;
    initial resource information that specifies the initial allocation of the hardware resources when starting the one or more virtual machines; or at least any two of the operating destination designation information, the priority information, and the initial resource information. The in-vehicle system according to claim 4, comprising: .
  6.  前記配置構成情報は、
     前記1または複数の仮想マシンにおいて、特定の稼働先である情報処理装置において稼働させるべき仮想マシンと、前記特定の稼働先である情報処理装置を指定する情報とを記録した稼働先指定情報と、
     前記1または複数の仮想マシンに関し、前記ハードウェアリソースを割り当てる際の優先度を指定する優先度情報とを含み、
     前記優先度は、最も高い第1優先度と、前記第1優先度より低い第2優先度とを含み、
     前記配置制御部は、前記第1情報処理装置における前記ハードウェアリソースの使用状況を監視し、前記第1情報処理装置において前記ハードウェアリソースのひっ迫が検出されたことに応答して、前記第1情報処理装置において実行されている仮想マシンの中において、前記稼働先指定情報により前記第2情報処理装置に移動可能であることが示され、かつ優先度が前記第2優先度である仮想マシンを選択して、前記第2情報処理装置に移動する稼働先制御部を含む、請求項4に記載の車載システム。
    The arrangement configuration information is
    Operation destination designation information that records a virtual machine to be operated on an information processing device as a specific operation destination among the one or more virtual machines, and information specifying the information processing device as the specific operation destination;
    and priority information specifying a priority when allocating the hardware resources with respect to the one or more virtual machines,
    The priority includes a highest first priority and a second priority lower than the first priority,
    The placement control unit monitors the usage status of the hardware resources in the first information processing device, and in response to detecting a shortage of the hardware resources in the first information processing device, Among the virtual machines being executed in the information processing device, a virtual machine that is indicated by the operation destination specification information as being movable to the second information processing device and whose priority is the second priority is selected. The in-vehicle system according to claim 4, further comprising an operation destination control unit that selects and moves to the second information processing device.
  7.  前記配置制御部はさらに、前記第1情報処理装置および前記第2情報処理装置における前記ハードウェアリソースの使用状況を監視し、前記稼働先制御部による仮想マシンの移動の後においても前記車載システムにおいて前記ハードウェアリソースのひっ迫が検出されたことに応答して、当該ハードウェアリソースのひっ迫が検出された情報処理装置において稼働している仮想マシンの中で、前記優先度が前記第2優先度である仮想マシンへの前記ハードウェアリソースの割当を削減するリソース削減部を含む、請求項6に記載の車載システム。 The placement control unit further monitors the usage status of the hardware resources in the first information processing device and the second information processing device, and even after the virtual machine is moved by the operation destination control unit, the arrangement control unit In response to the detection of the shortage of hardware resources, among the virtual machines running on the information processing device in which the shortage of the hardware resources was detected, the priority is set to the second priority. The in-vehicle system according to claim 6, further comprising a resource reduction unit that reduces allocation of the hardware resources to a certain virtual machine.
  8.  複数の前記情報処理装置クラスタを含む、請求項1から請求項7のいずれか1項に記載の車載システム。 The in-vehicle system according to any one of claims 1 to 7, comprising a plurality of the information processing device clusters.
  9.  互いに通信可能な第1情報処理装置および第2情報処理装置を含む情報処理装置クラスタを含む車載システムの制御方法であって、
     前記第1情報処理装置および前記第2情報処理装置の各々は、
     コンピュータハードウェア、および
     前記コンピュータハードウェア上において動作する仮想化基盤を含み、
     前記制御方法は、
     コンピュータが、前記第1情報処理装置および前記第2情報処理装置の各々の前記仮想化基盤において、1または複数の仮想マシンを稼働させるステップと、
     コンピュータが、前記第1情報処理装置および前記第2情報処理装置におけるハードウェアリソースの使用状況を監視するステップと、
     前記第1情報処理装置において前記ハードウェアリソースのひっ迫が検出されたことに応答して、前記1または複数の仮想マシンの構成をリアルタイムに変更するステップとを含む、車載システムの制御方法。
     
    A method for controlling an in-vehicle system including an information processing device cluster including a first information processing device and a second information processing device that can communicate with each other, the method comprising:
    Each of the first information processing device and the second information processing device,
    computer hardware; and a virtualization infrastructure operating on the computer hardware;
    The control method includes:
    a step in which the computer runs one or more virtual machines on the virtualization infrastructure of each of the first information processing device and the second information processing device;
    a step in which the computer monitors the usage status of hardware resources in the first information processing device and the second information processing device;
    A method for controlling an in-vehicle system, the method comprising: changing the configuration of the one or more virtual machines in real time in response to the detection of a shortage of the hardware resources in the first information processing device.
PCT/JP2023/021700 2022-09-01 2023-06-12 In-vehicle system and control method for in-vehicle system WO2024048001A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2022138903 2022-09-01
JP2022-138903 2022-09-01

Publications (1)

Publication Number Publication Date
WO2024048001A1 true WO2024048001A1 (en) 2024-03-07

Family

ID=90099254

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/021700 WO2024048001A1 (en) 2022-09-01 2023-06-12 In-vehicle system and control method for in-vehicle system

Country Status (1)

Country Link
WO (1) WO2024048001A1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021124902A (en) * 2020-02-04 2021-08-30 トヨタ自動車株式会社 Vehicle controller, vehicle control method, and vehicle control program
JP2022520965A (en) * 2019-02-14 2022-04-04 華為技術有限公司 Data processing method and corresponding equipment
JP2022099796A (en) * 2020-12-23 2022-07-05 株式会社オートネットワーク技術研究所 Onboard computer, computer execution method and computer program

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022520965A (en) * 2019-02-14 2022-04-04 華為技術有限公司 Data processing method and corresponding equipment
JP2021124902A (en) * 2020-02-04 2021-08-30 トヨタ自動車株式会社 Vehicle controller, vehicle control method, and vehicle control program
JP2022099796A (en) * 2020-12-23 2022-07-05 株式会社オートネットワーク技術研究所 Onboard computer, computer execution method and computer program

Similar Documents

Publication Publication Date Title
US7882136B2 (en) Foresight data transfer type hierarchical storage system
US5530845A (en) Storage control subsystem implemented with an application program on a computer
US11194569B2 (en) Method, electronic device and medium for upgrading a hyper-converged infrastructure node
KR101680109B1 (en) Multi-Core Apparatus And Method For Balancing Load Of The Same
CN103577345A (en) Methods and structure for improved flexibility in shared storage caching by multiple systems
CN103593242A (en) Resource sharing control system based on Yarn frame
WO2018158819A1 (en) Distributed database system and resource management method for distributed database system
WO2015045507A1 (en) Vehicular control device
US11675545B2 (en) Distributed storage system and storage control method
US11836475B2 (en) Electronic control unit, software update method, software update program product and electronic control system
JP6975854B2 (en) Control controller and vehicle control system
WO2024048001A1 (en) In-vehicle system and control method for in-vehicle system
CN104793989A (en) Method and lightweight mechanism for mixed-critical applications
US20240054002A1 (en) Vehicle-mounted computer, computer execution method, and computer program
CN111791886B (en) Real-time control system for vehicle and method for performing vehicle control via real-time control system
US11847012B2 (en) Method and apparatus to provide an improved fail-safe system for critical and non-critical workloads of a computer-assisted or autonomous driving vehicle
US20240036941A1 (en) Vehicle-mounted computer, computer execution method, and computer program
CN113391821A (en) Asymmetric multiprocessor embedded operating system
KR20220041577A (en) Process group management method and system for high performance cloud service system using multiple computing nodes
WO2018127394A1 (en) Scalable control system for a motor vehicle
WO2022153876A1 (en) In-vehicle computer, computer execution method, and computer program
US11836476B2 (en) Electronic control unit, software update method, software update program product and electronic control system
US20240078128A1 (en) Control device, control system, and control method
JP2022085863A (en) Electronic control device, software update method, software update program, and electronic control system
US20230067658A1 (en) System and operation method of hybrid virtual machine managers

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23859771

Country of ref document: EP

Kind code of ref document: A1