Evaluation support device, evaluation support method, and program
The evaluation support device addresses the challenge of pre-installation evaluation of virtual machines by using a peripheral device emulation unit and synchronization input/output unit to replicate vehicle device behavior, ensuring accurate virtual machine evaluation before installation.
Patent Information
- Application Number
- JP2024084820
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2024-05-24
- Publication Date
- 2025-12-05
AI Technical Summary
Existing vehicle development support systems struggle to properly evaluate virtual machines before they are installed in the hardware of the vehicle's ECU, as they do not consider the operation of the virtual machine when installed on the vehicle's ECU hardware.
An evaluation support device that includes a peripheral device emulation unit to emulate the behavior of vehicle devices and a synchronization input/output unit to synchronize messages with the guest virtual machine, allowing accurate reproduction of the virtual machine's behavior before installation.
Enables appropriate evaluation of virtual machines by accurately reproducing their behavior when installed in the vehicle's ECU, supporting effective evaluation before actual installation.
Smart Images

Figure 2025177748000001_ABST
Abstract
Description
[Technical Field]
[0001] The present disclosure relates to a device for evaluating, for example, a virtual machine that is installed in a vehicle. [Background technology]
[0002] Conventionally, a vehicle development support system has been proposed that evaluates multiple ECUs (Electronic Control Units) installed in a vehicle (see, for example, Patent Document 1). Each of these ECUs controls on-board equipment. The vehicle development support system of Patent Document 1 includes a real-time simulator. The real-time simulator calculates physical state quantities that operate the on-board equipment corresponding to the ECU based on control signals output by the ECU to be evaluated, simulating the operation of the on-board equipment and simulating vehicle behavior accompanying the operation of the on-board equipment. The vehicle development support system then evaluates the operation of the ECU based on the simulation results. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] International Publication No. 2022 / 259342 Summary of the Invention [Problem to be solved by the invention]
[0004] However, the vehicle development support system of Patent Document 1 has a problem in that it is difficult to properly evaluate the developed virtual machine before it is installed in the hardware of the vehicle's ECU.
[0005] In other words, the vehicle development support system of Patent Document 1 evaluates an ECU, which is a real device. An ECU, which is a real device, is completed by installing software such as a virtual machine on hardware. Therefore, with the vehicle development support system of Patent Document 1, it is difficult to evaluate a developed virtual machine before installing the virtual machine on the ECU hardware. In other words, the vehicle development support system of Patent Document 1 does not take into consideration reproducing the operation of the virtual machine when installed on the vehicle's ECU before installing the developed virtual machine on the vehicle's ECU hardware. Therefore, it is difficult to properly evaluate the virtual machine.
[0006] Therefore, the present disclosure provides an evaluation support device that can support appropriate evaluation of virtual machines. [Means for solving the problem]
[0007] An evaluation support device according to one embodiment of the present disclosure is an evaluation support device that supports the evaluation of a guest virtual machine mounted on an ECU (Electronic Control Unit) of a vehicle, and includes: a peripheral device emulation unit that emulates the behavior of each of a plurality of devices mounted on the vehicle; and a synchronization input / output unit that receives a plurality of first messages from the peripheral device emulation unit and outputs the plurality of first messages to the guest virtual machine to be evaluated that is located outside the vehicle and outside the ECU, and the synchronization input / output unit synchronizes each of the plurality of first messages with the behavior of each of the plurality of devices and outputs them to the guest virtual machine.
[0008] These comprehensive or specific aspects may be realized as a system, a method, an integrated circuit, a computer program, or a computer-readable recording medium such as a CD-ROM, or may be realized as any combination of the system, the method, the integrated circuit, the computer program, and the recording medium. The recording medium may also be a non-transitory recording medium. [Effects of the Invention]
[0009] The evaluation support device according to the present disclosure can support appropriate evaluation of virtual machines.
[0010] Further advantages and effects of one aspect of the present disclosure will become apparent from the specification and drawings. Such advantages and / or effects are provided by some of the embodiments and configurations described in the specification and drawings, but not all of the configurations are necessarily required. [Brief explanation of the drawings]
[0011] [Figure 1] FIG. 1 is a conceptual diagram showing an overview of an in-vehicle system. [Figure 2] FIG. 2 is a block diagram showing an outline of the in-vehicle system. [Figure 3] FIG. 3 is a diagram showing an example of the configuration of another evaluation support device to be compared with the evaluation support device in the embodiment. [Figure 4] FIG. 4 is a diagram illustrating an example of the configuration of an evaluation support device according to an embodiment. [Figure 5] FIG. 5 is a flowchart showing an example of the processing operation of the synchronous input / output unit in the embodiment. [Figure 6] FIG. 6 is a flowchart showing another example of the processing operation of the synchronous input / output unit in the embodiment. DETAILED DESCRIPTION OF THE INVENTION
[0012] An evaluation support device according to a first aspect of the present disclosure is an evaluation support device that supports the evaluation of a guest virtual machine mounted on an ECU (Electronic Control Unit) of a vehicle, and includes a peripheral device emulation unit that emulates the behavior of each of a plurality of devices mounted on the vehicle, and a synchronization input / output unit that receives a plurality of first messages from the peripheral device emulation unit and outputs the plurality of first messages to the guest virtual machine to be evaluated that is located outside the vehicle and outside the ECU, and the synchronization input / output unit synchronizes each of the plurality of first messages with the behavior of each of the plurality of devices and outputs the first messages to the guest virtual machine.
[0013] As a result, the behavior of each of the multiple devices is emulated, and multiple first messages are transmitted from the peripheral device emulation unit to the synchronization input / output unit. The multiple first messages are then output to the guest virtual machine in synchronization with the behavior of each of the multiple devices. The guest virtual machine performs processing operations in response to the multiple first messages. As a result, before the guest virtual machine is installed in the vehicle's ECU, it is possible to accurately reproduce the behavior of the guest virtual machine when installed in the vehicle's ECU. As a result, it is possible to support appropriate evaluation of the guest virtual machine before it is installed in the vehicle's ECU. Note that the guest virtual machine may be a virtual machine.
[0014] In the evaluation support apparatus according to a second aspect, the peripheral device emulation unit may transmit the plurality of first messages, each of which is assigned a timestamp, to the synchronization input / output unit, and the synchronization input / output unit may output each of the plurality of first messages to the guest virtual machine at a timing corresponding to the timestamp assigned to the first message, thereby synchronizing the output of each of the plurality of first messages to the guest virtual machine with the behavior of each of the plurality of devices. Note that the second aspect may be dependent on the first aspect.
[0015] This allows each of the multiple first messages to be output to the guest virtual machine at a timing according to the timestamp attached to the first message, and as a result, the output of each of the multiple first messages to the guest virtual machine can be synchronized with the behavior of each of the multiple devices with high precision.
[0016] In addition, in the evaluation support apparatus according to a third aspect, the peripheral device emulation unit may transmit the plurality of first messages, each having type information attached thereto, to the synchronous input / output unit, the type information attached to each of the plurality of first messages indicating a type of the first message, and when outputting each of the plurality of first messages to the guest virtual machine, the synchronous input / output unit may write, for each of the plurality of first messages, the first message to a shared memory of a virtual device driver, among a plurality of virtual device drivers held by the guest virtual machine, that is associated with the type information attached to the first message. Note that the third aspect may be dependent on the first or second aspect.
[0017] As a result, the first message is written to the shared memory of one of the virtual device drivers included in the guest virtual machine, which corresponds to the type of the first message. As a result, if the guest virtual machine has application programs (also called apps) corresponding to the respective virtual device drivers, the app corresponding to the type of the first message can execute an appropriate processing operation according to the first message.
[0018] In the evaluation support device according to a fourth aspect, the synchronous input / output unit may convert a data structure of the first message into a data structure corresponding to the virtual device driver when writing the first message to the shared memory of the virtual device driver. Note that the fourth aspect may be dependent on the third aspect.
[0019] This allows for appropriate processing to be achieved.
[0020] In addition, in the evaluation support device according to a fifth aspect, when the synchronization input / output unit receives a plurality of second messages from the guest virtual machine, the synchronization input / output unit may synchronize with the reception of each of the second messages and cause the peripheral device emulation unit to execute processing corresponding to each of the second messages. Note that the fifth aspect may be subordinate to any one of the first to fourth aspects.
[0021] This synchronizes the transmission of the second message from the guest virtual machine to the synchronization input / output unit with the processing by the peripheral device emulation unit in response to the second message. Therefore, the operation of the guest virtual machine and the devices mounted on the vehicle's ECU can be reproduced with higher accuracy in the evaluation support device. As a result, it is possible to support more appropriate evaluation of the guest virtual machine before the guest virtual machine is mounted on the vehicle's ECU.
[0022] In the evaluation support device according to a sixth aspect, the synchronization input / output unit may assign a timestamp to each of the second messages according to the timing at which the second message was received, and transmit the second messages, each with the timestamp assigned, to the peripheral device emulation unit, thereby synchronizing the reception of each of the second messages with processing by the peripheral device emulation unit according to each of the second messages. Note that the sixth aspect may be dependent on the fifth aspect.
[0023] As a result, when the peripheral device emulation unit receives each of the multiple second messages, it can execute processing corresponding to the second message at a timing according to the timestamp attached to the second message. As a result, it is possible to synchronize with high precision the transmission of the second message from the guest virtual machine to the synchronization input / output unit and the processing by the peripheral device emulation unit according to the second message.
[0024] In the evaluation support device according to a seventh aspect, the peripheral device emulation unit and the synchronous input / output unit may transmit and receive messages based on the specifications of DDS (Data Distribution Service). Note that the eighth aspect may be subordinate to any one of the first to sixth aspects.
[0025] This allows the peripheral device emulation section and the synchronous input / output section to be separated, increasing the degree of freedom in designing the evaluation support device.
[0026] In the evaluation support device according to an eighth aspect, the peripheral device emulation unit and the synchronous input / output unit may transmit and receive messages using Pub / Sub (publish / subscribe) messaging. Note that the seventh aspect may be subordinate to any one of the first to sixth aspects.
[0027] This allows the peripheral device emulation section and the synchronous input / output section to be separated, increasing the degree of freedom in designing the evaluation support device.
[0028] Furthermore, an evaluation support method according to a first aspect of the present disclosure is an evaluation support method in which an evaluation support device supports the evaluation of a guest virtual machine mounted on an ECU (Electronic Control Unit) of a vehicle, emulating the behavior of each of a plurality of devices mounted on the vehicle, receiving a plurality of first messages transmitted by the emulation, and outputting the plurality of first messages to the guest virtual machine to be evaluated that is located outside the vehicle and outside the ECU, and in outputting the plurality of first messages, each of the plurality of first messages is synchronized with the behavior of each of the plurality of devices and output to the guest virtual machine.
[0029] Hereinafter, the embodiments will be specifically described with reference to the drawings.
[0030] The embodiments described below are all comprehensive or specific examples. The numerical values, shapes, materials, components, component placement and connection configurations, steps, and step order shown in the following embodiments are merely examples and are not intended to limit the present disclosure. Furthermore, among the components in the following embodiments, components that are not described in the independent claims that represent the highest concepts are described as optional components. Furthermore, each drawing is a schematic diagram and is not necessarily an exact illustration. Furthermore, the same components are designated by the same reference numerals in each drawing.
[0031] (Embodiment) First, an overview of an in-vehicle system will be described with reference to Fig. 1 and Fig. 2. The in-vehicle system is an example of a system including an ECU on which a virtual machine to be evaluated by an evaluation support device according to an embodiment is installed. Fig. 1 is a conceptual diagram showing an overview of the in-vehicle system. Fig. 2 is a block diagram showing an overview of the in-vehicle system.
[0032] As shown in FIG. 1, the in-vehicle system 2 is applied to an automatic driving system mounted on a vehicle 4, such as an automobile, for controlling driving operations such as acceleration / deceleration, steering, and braking of the vehicle 4 so that they are performed automatically by an ADAS (Advanced Driver Assistance System).
[0033] The in-vehicle system 2 can communicate with the monitoring server 8 via an external network 6 such as the Internet. The in-vehicle system 2 monitors whether or not a security abnormality has occurred in the in-vehicle system 2, and notifies the monitoring server 8 of the monitoring result via the external network 6.
[0034] The monitoring server 8 is installed in, for example, a security monitoring center. Upon receiving a notification from the in-vehicle system 2, the monitoring server 8 grasps the occurrence status of security abnormalities in each vehicle 4 and provides advice on how to deal with the security abnormalities.
[0035] In the example of FIG. 1, the in-vehicle system 2 communicates with the monitoring server 8, but it is not necessary for the in-vehicle system 2 to communicate with the monitoring server 8.
[0036] As shown in FIG. 2, the in-vehicle system 2 includes an integrated ECU 10, a gateway ECU 12, a steering ECU 14, a brake ECU 16, a zone ECU 18, a front camera ECU 20, and a rear camera ECU 22.
[0037] The integrated ECU 10 is communicably connected to the gateway ECU 12 via a CAN (Controller Area Network) 24. The gateway ECU 12, the steering ECU 14, and the brake ECU 16 are communicably connected to one another via a CAN 26.
[0038] The integrated ECU 10 is also communicably connected to the zone ECU 18 via Ethernet (registered trademark) 28. The zone ECU 18, the front camera ECU 20, and the rear camera ECU 22 are also communicably connected to one another via Ethernet 30. Furthermore, the integrated ECU 10 may be communicably connected to a monitoring server 8 (see FIG. 1) via an external network 6, for example.
[0039] The integrated ECU 10 performs (a) communication control for sending and receiving messages via the external network 6, the CAN 24, and the Ethernet 28, (b) vehicle control for instructing the gateway ECU 12 and the zone ECU 18 to control the vehicle 4 via the CAN 24 and the Ethernet 28, and (c) video output to the infotainment system and the instrument panel. The integrated ECU 10 may also monitor whether a security abnormality (e.g., unauthorized access) has occurred in the in-vehicle system 2, and notify the monitoring server 8 of the monitoring results.
[0040] The gateway ECU 12 mediates messages transmitted and received between the integrated ECU 10 and the steering ECU 14 and brake ECU 16 .
[0041] The steering ECU 14 controls steering by a steering wheel mounted on the vehicle 4.
[0042] The brake ECU 16 controls the operation of the brakes mounted on the vehicle 4 .
[0043] In addition to the steering ECU 14 and the brake ECU 16, the in-vehicle system 2 may use ECUs that control the engine, body, etc. of the vehicle 4 to perform various controls of the vehicle 4, such as running, turning, and stopping.
[0044] The zone ECU 18 mediates messages transmitted and received between the integrated ECU 10 and the front camera ECU 20 and rear camera ECU 22 .
[0045] The front camera ECU 20 acquires an image of the front of the vehicle 4 captured by a front camera mounted on the front part of the vehicle 4.
[0046] The rear camera ECU 22 acquires a rear image of the vehicle 4 captured by a rear camera mounted on the rear of the vehicle 4.
[0047] FIG. 3 is a diagram showing an example of the configuration of another evaluation support device to be compared with the evaluation support device of this embodiment.
[0048] The evaluation support device 900 to be compared is configured as a computer such as a cloud server, and includes a host virtual machine 910 and a guest virtual machine 920. The host virtual machine 910 is a virtual machine also called a host VM (Virtual Machine), and the guest virtual machine 920 is a virtual machine also called a guest VM. The evaluation support device 900 uses the host virtual machine 910 to support evaluation of the processing operation of the guest virtual machine 920. The guest virtual machine 920 evaluated using the evaluation support device 900 is mounted on the hardware of the above-mentioned integrated ECU 10, for example.
[0049] The guest virtual machine 920 includes an OS (Operating System) 922, a first application 921a, a second application 921b, and a third application 921c. Each of the first application 921a, the second application 921b, and the third application 921c is an application program. The first application 921a communicates with the host virtual machine 910 via a first VirtIO-Front End (FE) 922a in the OS 922. The second application 921b communicates with the host virtual machine 910 via a second VirtIO-FE 922b in the OS 922. The third application 921c communicates with the host virtual machine 910 via a third VirtIO-FE 922c in the OS 922.
[0050] The host virtual machine 910 includes a first device emulation unit 911a, a second device emulation unit 911b, and a third device emulation unit 911c.
[0051] The first device emulation unit 911a emulates the behavior of a first device mounted on the vehicle 4. The emulated first device may be, for example, an ECU other than the integrated ECU 10, or may be a sensor used in an ADAS. The first device emulation unit 911a communicates with a first application 921a of the guest virtual machine 920 via a first OS virtual device 912a in the OS 912, a first device-dependent interface 913a, and a first VirtIO-BE (Back End) interface 914a, each of which is provided in the host virtual machine 910. Note that the interface may also be abbreviated as I / F.
[0052] The second device emulation unit 911b emulates the behavior of a second device installed in the vehicle 4. The emulated second device is a device other than the first device, and may be, for example, an ECU other than the integrated ECU 10 or a sensor used in an ADAS. The second device emulation unit 911b communicates with a second application 921b of the guest virtual machine 920 via a second OS virtual device 912b in the OS 912, a second device-dependent interface 913b, and a second VirtIO-BE interface 914b, each of which is provided in the host virtual machine 910.
[0053] The third device emulation unit 911c emulates the behavior of a third device installed in the vehicle 4. The emulated third device is a device other than the first device and the second device, and may be, for example, an ECU other than the integrated ECU 10 or a sensor used in an ADAS. The third device emulation unit 911c communicates with a third application 921c of the guest virtual machine 920 via an extra-OS framework 912c, a device-independent interface 913c, and a third VirtIO-BE interface 914c, which are provided in the host virtual machine 910.
[0054] In such an evaluation support device 900, emulation is performed at the device interface 915. That is, emulation is performed on the left side of the device interface 915 in FIG.
[0055] In addition, in such an evaluation support device 900, the first device emulation unit 911a, the second device emulation unit 911b, and the third device emulation unit 911c communicate with the guest virtual machine 920 via their respective individual paths.
[0056] Therefore, there is a possibility that a timing discrepancy occurs between the processing operations performed in the actual vehicle 4 and the processing operations performed in the evaluation support device 900. The processing operations performed in the actual vehicle 4 are processing operations performed by the first device, the second device, and the third device mounted on the vehicle 4 and the guest virtual machine 920 mounted on the integrated ECU 10 of the vehicle 4. The processing operations performed in the evaluation support device 900 are processing operations performed by the first device emulation unit 911a, the second device emulation unit 911b, the third device emulation unit 911c, and the guest virtual machine 920. As a result, there is a problem in that the evaluation support device 900 cannot reproduce the operation of the guest virtual machine 920 when mounted on the integrated ECU 10 of the vehicle 4.
[0057] FIG. 4 is a diagram showing an example of the configuration of the evaluation support device according to the present embodiment.
[0058] The evaluation support device 100 in this embodiment is configured as a computer such as a cloud server, and includes a host virtual machine 110 and a guest virtual machine 120. The host virtual machine 110 is a virtual machine also referred to as a host VM, and the guest virtual machine 120 is a virtual machine also referred to as a guest VM. The evaluation support device 100 uses the host virtual machine 110 to support evaluation of the processing operation of the guest virtual machine 120. The guest virtual machine 120 evaluated using the evaluation support device 100 is mounted on, for example, the hardware of the integrated ECU 10 described above. In other words, the evaluation support device 100 in this embodiment is a device that supports evaluation of the guest virtual machine 120 mounted on the integrated ECU 10 of the vehicle 4, and is a device that supports the evaluation outside the vehicle 4 and outside the integrated ECU 10.
[0059] The guest virtual machine 120 includes an OS 122, a first application 121a, a second application 121b, and a third application 121c. Each of the first application 121a, the second application 121b, and the third application 121c is an application program. The first application 121a communicates with the host virtual machine 110 via a first virtual device driver 122a in the OS 122. The second application 121b communicates with the host virtual machine 110 via a second virtual device driver 122b in the OS 122. The third application 121c communicates with the host virtual machine 110 via a third virtual device driver 122c in the OS 122.
[0060] Such a guest virtual machine 120 has a configuration similar to that of the guest virtual machine 920 shown in FIG. 3. That is, the first application 121a, the second application 121b, and the third application 121c may be the same as the first application 921a, the second application 921b, and the third application 921c shown in FIG. 3, respectively. The first virtual device driver 122a, the second virtual device driver 122b, and the third virtual device driver 122c may be the same as the first VirtIO-FE 922a, the second VirtIO-FE 922b, and the third VirtIO-FE 922c shown in FIG. 3, respectively. The first virtual device driver 122a, the second virtual device driver 122b, and the third virtual device driver 122c each have a shared memory also called a VirtQueue.
[0061] The host virtual machine 110 in this embodiment includes a peripheral device emulation unit 111 and a synchronous input / output unit 112. The peripheral device emulation unit 111 emulates the behavior of each of a plurality of devices mounted on the vehicle 4. The peripheral device emulation unit 111 may also time-synchronize the emulation of the plurality of devices. That is, the peripheral device emulation unit 111 may emulate the behavior of the plurality of devices mounted on the vehicle 4 at the same timing as the behavior of the plurality of devices. Each of the plurality of devices to be emulated may be, for example, an ECU other than the integrated ECU 10 or a sensor used in an ADAS. Specifically, the sensor may be four cameras that capture images of the entire periphery of the vehicle 4 for assistance (e.g., omnidirectional parking assistance) provided by the ADAS when the vehicle 4 is traveling at a low speed. The four cameras capture images of the front, rear, left side, and right side of the vehicle 4. The peripheral device emulation unit 111 reproduces the synchronous input operation of these cameras with high accuracy. In other words, the peripheral device emulation unit 111 can be said to include a plurality of device emulation units that cooperate with one another. The plurality of device emulation units are, for example, a first device emulation unit 911a, a second device emulation unit 911b, and a third device emulation unit 911c shown in Fig. 3. Each of the plurality of device emulation units is also called a virtual device.
[0062] The synchronization input / output unit 112 receives a plurality of first messages from the peripheral device emulation unit 111 and outputs the plurality of first messages to the guest virtual machine 120 to be evaluated, which is located outside the vehicle 4 and outside the integrated ECU 10. Upon receiving the plurality of first messages, the guest virtual machine 120 executes processing according to the first messages. Here, the synchronization input / output unit 112 in the present embodiment synchronizes each of the plurality of first messages with the behavior of each of the plurality of devices mounted on the vehicle 4 and outputs the plurality of first messages to the guest virtual machine 120. As a result, for each of the plurality of devices mounted on the vehicle 4, the behavior of that device and the output of the first message generated by emulating the behavior of that device to the guest virtual machine 120 are synchronized. In other words, if the behaviors of the plurality of devices mounted on the vehicle 4 are performed at different times, each of the plurality of first messages generated by emulating the behaviors of those devices are output to the guest virtual machine 120 according to the above-described timing. Note that in the above-described synchronization, for each of the plurality of devices, the behavior of that device and the output of the first message generated by emulating the behavior of that device may be delayed by a certain time.
[0063] Furthermore, when receiving multiple second messages from the guest virtual machine 120, the synchronous input / output unit 112 synchronizes with the reception of each of the multiple second messages and causes the peripheral device emulation unit 111 to execute processing corresponding to each of the multiple second messages. As a result, for each of the multiple second messages, the transmission of the second message from the guest virtual machine 120 to the host virtual machine 110 is synchronized with the processing by the peripheral device emulation unit 111 corresponding to the second message. In other words, when multiple second messages are transmitted from the guest virtual machine 120 to the host virtual machine 110 at different times, the processing by the peripheral device emulation unit 111 corresponding to each of the multiple second messages is performed according to the above-mentioned timing. Note that in the above-mentioned synchronization, for each of the multiple second messages, the reception or transmission of the second message may be delayed by a certain time from the processing by the peripheral device emulation unit 111 corresponding to the second message.
[0064] Furthermore, in the evaluation support device 100 according to this embodiment, emulation is performed on the VirtIO interface 115. That is, emulation is performed on the left side of the VirtIO interface 115 in FIG.
[0065] Fig. 5 is a flowchart showing an example of the processing operation of the synchronous input / output unit 112 in this embodiment. Specifically, the flowchart in Fig. 5 shows an example of the processing operation of the synchronous input / output unit 112 when the host virtual machine 110 outputs a message to the guest virtual machine 120. Furthermore, the synchronous input / output unit 112 executes the processes of steps S11 to S14 shown in Fig. 5 independently and simultaneously for each virtual device, for example.
[0066] First, the synchronous input / output unit 112 determines whether or not a first message has been received from the peripheral device emulation unit 111 (step S11). If the synchronous input / output unit 112 determines that the first message has not been received (No in step S11), it repeats the process of step S11. On the other hand, if the synchronous input / output unit 112 determines that the first message has been received (Yes in step S11), it associates a virtual device driver with the first message (step S12). That is, the synchronous input / output unit 112 identifies a virtual device driver to which the first message is to be output, from among the first virtual device driver 122a, the second virtual device driver 122b, and the third virtual device driver 122c included in the guest virtual machine 120. As a result, the identified virtual device driver is associated with the first message. Hereinafter, the virtual device driver associated in this manner will also be referred to as a corresponding virtual device driver. Herein, the synchronous input / output unit 112 may associate a virtual device driver with the first message based on type information attached to the first message.
[0067] Specifically, the peripheral device emulation unit 111 transmits a plurality of first messages, each with type information attached thereto, to the synchronous input / output unit 112. The type information attached to each of the plurality of first messages indicates the type of the first message. More specifically, the type information may indicate the type of virtual device (e.g., a sensor) that is the sender of the first message. In other words, the type information indicates which virtual device sent the first message. The synchronous input / output unit 112 identifies a virtual device driver to be the output destination of the first message based on the type information. That is, the synchronous input / output unit 112 identifies the source virtual device based on the type information attached to the first message, and identifies the virtual device driver associated with the identified virtual device as the output destination of the first message. Note that the plurality of type information may be associated with the first virtual device driver 122a, the second virtual device driver 122b, and the third virtual device driver 122c in advance.
[0068] Next, the synchronous input / output unit 112 converts the data structure of the first message into a data structure that corresponds to the shared memory of the corresponding virtual device driver (step S13). Then, the synchronous input / output unit 112 writes the first message having the converted data structure into the shared memory of the corresponding virtual device driver (step S14). Note that this shared memory is, for example, a VirtQueue of VirtIO-FE.
[0069] Here, in step S14, the synchronous input / output unit 112 writes the first message to the shared memory of the corresponding virtual device driver at a timing corresponding to the timestamp attached to the first message. That is, the peripheral device emulation unit 111 transmits multiple first messages, each with a timestamp attached, to the synchronous input / output unit 112. Specifically, for each device of the vehicle 4, the peripheral device emulation unit 111 attaches a timestamp indicating the timing at which the message is output from the device to the first message output from the virtual device corresponding to the device. Then, the peripheral device emulation unit 111 transmits the first message with the timestamp attached to the synchronous input / output unit 112. Upon receiving each of the multiple first messages, the synchronous input / output unit 112 outputs each of the multiple first messages to the guest virtual machine 120 at a timing corresponding to the timestamp attached to the first message. In this way, the synchronous input / output unit 112 synchronizes the output of each of the multiple first messages to the guest virtual machine 120 with the behavior of each of the multiple devices. The timestamp attached to the first message may indicate the timing at which the first message is output to the guest virtual machine 120.
[0070] As described above, in the present embodiment, the behavior of each of the multiple devices is emulated, and multiple first messages are transmitted from the peripheral device emulation unit 111 to the synchronization input / output unit 112. The multiple first messages are then output to the guest virtual machine 120 in synchronization with the behavior of each of the multiple devices. The guest virtual machine 120 performs processing operations in response to the multiple first messages. As a result, before the guest virtual machine 120 is mounted on the integrated ECU 10 of the vehicle 4, it is possible to reproduce with high accuracy the operation of the guest virtual machine 120 when mounted on the integrated ECU 10 of the vehicle 4. For example, the reproduced operation is evaluated. As a result, it is possible to assist in appropriate evaluation of the guest virtual machine 120 before the guest virtual machine 120 is mounted on the integrated ECU 10 of the vehicle 4.
[0071] Furthermore, in this embodiment, each of the multiple first messages is output to the guest virtual machine 120 at a timing according to the timestamp attached to the first message. As a result, the output of each of the multiple first messages to the guest virtual machine 120 can be synchronized with the behavior of each of the multiple devices with high accuracy.
[0072] Furthermore, in this embodiment, as described above, when writing the first message to the shared memory of the corresponding virtual device driver, the synchronous input / output unit 112 converts the data structure of the first message into a data structure that corresponds to the corresponding virtual device driver. The data structure that corresponds to the corresponding virtual device driver may be, for example, a data structure based on the OASIS Virtual I / O Device (VIRTIO) standard. This allows for appropriate processing.
[0073] Furthermore, in this embodiment, when the synchronous input / output unit 112 outputs each of the multiple first messages to the guest virtual machine 120, the synchronous input / output unit 112 writes the first message to the shared memory of a virtual device driver associated with the type information attached to the first message, among multiple virtual device drivers included in the guest virtual machine 120. The multiple virtual device drivers are, for example, the first virtual device driver 122a, the second virtual device driver 122b, and the third virtual device driver 122c.
[0074] As a result, the first message is written to the shared memory of a virtual device driver corresponding to the type of the first message among multiple virtual device drivers included in the guest virtual machine 120. As a result, if the guest virtual machine 120 has an application corresponding to each of the multiple virtual device drivers, the application corresponding to the type of the first message can execute an appropriate processing operation according to the first message.
[0075] Fig. 6 is a flowchart showing another example of the processing operation of the synchronous input / output unit 112 in this embodiment. Specifically, the flowchart in Fig. 6 shows an example of the processing operation of the synchronous input / output unit 112 when the guest virtual machine 120 outputs a message to the host virtual machine 110. Furthermore, the synchronous input / output unit 112 executes the processes of steps S21 to S24 shown in Fig. 6 independently and simultaneously for each virtual device driver, for example.
[0076] First, the synchronous input / output unit 112 determines whether or not a second message has been received from one of the first virtual device driver 122a, the second virtual device driver 122b, and the third virtual device driver 122c of the guest virtual machine 120 (step S21). If the synchronous input / output unit 112 determines that the second message has not been received (No in step S21), it repeats the process of step S21. On the other hand, if the synchronous input / output unit 112 determines that the second message has been received (Yes in step S21), it attaches a timestamp to the second message (step S22). The attached timestamp may indicate the time when the second message was received.
[0077] Next, the synchronous input / output unit 112 associates the second message with a virtual device (step S23). That is, the synchronous input / output unit 112 identifies a virtual device to which the second message is to be output, from among the multiple virtual devices included in the peripheral device emulation unit 111. As a result, the identified virtual device is associated with the second message. Hereinafter, the virtual device associated in this manner is also referred to as a corresponding virtual device. At this time, the synchronous input / output unit 112 may attach type information, which is previously associated with the identified virtual device, to the second message.
[0078] Then, the synchronous input / output unit 112 transmits the second message to the peripheral device emulation unit 111 (step S24). Note that the synchronous input / output unit 112 may convert the data structure of the second message into a data structure compatible with the peripheral device emulation unit 111 and then transmit the second message to the peripheral device emulation unit 111. Upon receiving the second message, the peripheral device emulation unit 111 causes a virtual device associated with the second message (i.e., a corresponding virtual device) in step S23 to execute processing in accordance with the second message. For example, among the multiple virtual devices included in the peripheral device emulation unit 111, a virtual device that is pre-associated with the type information attached to the second message executes processing in accordance with the second message at a timing corresponding to the timestamp attached to the second message. Note that the timing corresponding to the timestamp may be a timing a predetermined delay time after the time indicated by the timestamp. Alternatively, if the timestamp attached to the second message indicates the time at which the second message is to be processed, the timing corresponding to the timestamp may be the time indicated by the timestamp.
[0079] As described above, in the present embodiment, reception of the second message by the synchronous input / output unit 112, i.e., transmission of the second message from the guest virtual machine 120 to the synchronous input / output unit 112, and processing by the peripheral device emulation unit 111 in response to the second message are synchronized. Therefore, the operations of the guest virtual machine 120 and the multiple devices mounted on the integrated ECU 10 of the vehicle 4 can be reproduced with higher accuracy in the evaluation support device 100. As a result, it is possible to support more appropriate evaluation of the guest virtual machine 120 before the guest virtual machine 120 is mounted on the integrated ECU 10 of the vehicle 4.
[0080] Furthermore, in this embodiment, the synchronous input / output unit 112 assigns a timestamp to each of the multiple second messages according to the timing at which the second message was received, and transmits the multiple second messages, each with the timestamp, to the peripheral device emulation unit 111. In this way, the synchronous input / output unit 112 synchronizes the reception of each of the multiple second messages with the processing by the peripheral device emulation unit 111 in response to each of the multiple second messages. In this way, upon receiving each of the multiple second messages, the peripheral device emulation unit 111 can execute processing in response to the second message at the timing according to the timestamp assigned to the second message. As a result, the transmission of the second message from the guest virtual machine 120 to the synchronous input / output unit 112 and the processing by the peripheral device emulation unit 111 in response to the second message can be synchronized with high accuracy.
[0081] The evaluation support device of the present disclosure has been described above based on the above embodiment, but the present disclosure is not limited to the above embodiment. As long as it does not deviate from the spirit of the present disclosure, various modifications that a person skilled in the art can conceive of to the above embodiment may also be included in the present disclosure.
[0082] For example, the peripheral device emulation unit 111 and the synchronous input / output unit 112 in the above-described embodiment may transmit and receive messages based on the specifications of DDS (Data Distribution Service). Specifically, the peripheral device emulation unit 111 and the synchronous input / output unit 112 may transmit and receive messages using Pub / Sub (Publish / Subscribe) messaging. The message is the above-described first message or second message. The above-described type information may also be a topic name used in Pub / Sub messaging.
[0083] This allows the peripheral device emulation unit 111 and the synchronous input / output unit 112 to be separated, thereby increasing the degree of freedom in designing the evaluation support device 100.
[0084] In the above embodiment, the guest virtual machine 120 is mounted on the integrated ECU 10, but may be mounted on another ECU included in the vehicle 4.
[0085] Furthermore, in the above embodiment, the guest virtual machine 120 is the evaluation target, but the evaluation target is not limited to the guest virtual machine, and any virtual machine that is installed in an ECU may be the evaluation target.
[0086] Furthermore, the evaluation support device 100 in the above embodiment executes the following evaluation support method. In this evaluation support method, the evaluation support device 100 supports the evaluation of a guest virtual machine 120 mounted on an ECU of a vehicle 4. In this evaluation support method, the behavior of each of a plurality of devices mounted on the vehicle 4 is emulated, a plurality of first messages transmitted by the emulation are received, and the plurality of first messages are output to the guest virtual machine 120 to be evaluated that is located outside the vehicle 4 and outside its ECU. In addition, when outputting the plurality of first messages, each of the plurality of first messages is synchronized with the behavior of each of the plurality of devices and output to the guest virtual machine 120. This evaluation support method achieves the same effects as the evaluation support device 100.
[0087] In the above embodiments, each component may be configured with a dedicated circuit or hardware, or may be realized by executing a software program suitable for each component. Each component may be realized by a program execution unit such as a CPU (Central Processing Unit) or processor reading and executing a software program recorded on a recording medium such as a hard disk or semiconductor memory. Here, the program, which is software that realizes the device or system of the above embodiments, causes a computer to execute each step included in the flowcharts of Figures 5 and 6.
[0088] The following cases are also included in this disclosure:
[0089] (1) The above-mentioned device or system may specifically be a computer system consisting of a microprocessor, ROM (Read Only Memory), RAM (Random Access Memory), a hard disk unit, a display unit, a keyboard, a mouse, etc. A computer program is stored in the RAM or hard disk unit. The above-mentioned device or system achieves its function when the microprocessor operates in accordance with the computer program. Here, the computer program is composed of a combination of multiple instruction codes that indicate instructions to the computer to achieve a predetermined function.
[0090] (2) Some or all of the components constituting the above-mentioned device or system may be configured as a single system LSI (Large Scale Integration). A system LSI is an ultra-multifunctional LSI manufactured by integrating multiple components on a single chip, and specifically, is a computer system configured including a microprocessor, ROM, RAM, etc. A computer program is stored in the RAM. The system LSI achieves its functions when the microprocessor operates in accordance with the computer program.
[0091] (3) Some or all of the components constituting the above-mentioned device or system may be configured as an IC card or a standalone module that can be attached to or detached from the device or system. The IC card or module is a computer system consisting of a microprocessor, ROM, RAM, etc. The IC card or module may include the above-mentioned ultra-multifunctional LSI. The IC card or module achieves its functions when the microprocessor operates in accordance with a computer program. This IC card or module may be tamper-resistant.
[0092] (4) The present disclosure may be embodied as the methods described above, a computer program for implementing these methods on a computer, or a digital signal comprising the computer program.
[0093] The present disclosure may also be a computer program or a digital signal recorded on a computer-readable recording medium, such as a flexible disk, a hard disk, a CD (Compact Disc)-ROM, a DVD, a DVD-ROM, a DVD-RAM, a BD (Blu-ray (registered trademark) Disc), a semiconductor memory, etc. Alternatively, the present disclosure may be a digital signal recorded on such a recording medium.
[0094] The present disclosure may also be applied to transmitting a computer program or digital signal via a telecommunications line, a wireless or wired communication line, a network such as the Internet, data broadcasting, or the like.
[0095] Furthermore, the program or digital signal may be recorded on a recording medium and transferred, or the program or digital signal may be transferred via a network or the like, so that the program or digital signal may be implemented by another independent computer system. [Industrial Applicability]
[0096] The evaluation support device of the present disclosure can support appropriate evaluation of virtual machines, and can be applied to, for example, devices or systems that support the development of virtual machines. [Explanation of symbols]
[0097] 2. In-vehicle systems 4 vehicles 6 External Network 8 Monitoring Server 10 Integrated ECU 12 Gateway ECU 14 Steering ECU 16 Brake ECU 18 Zone ECU 20 Front camera ECU 22 Rear camera ECU 24, 26 CAN 28, 30 Ethernet 100, 900 evaluation support device 110, 910 Host Virtual Machine (Host VM) 111 Peripheral Device Emulation Section 112 Synchronous input / output section 120, 920 guest virtual machines (guest VMs) 121a, 921a 1st App 121b, 921b 2nd app 121c, 921c 3rd App 122, 912, 922 OS 122a First virtual device driver 122b Second virtual device driver 122c Third virtual device driver 911a First Device Emulation Section 911b Second Device Emulation Section 911c Third Device Emulation Department 912a First OS Virtual Device 912b Second OS Virtual Device 912c Out-of-OS framework 913a First Device Dependent Interface 913b Secondary Device Dependent Interface 913c Device Independent Interface 914a First VirtIO-BE interface 914b Second VirtIO-BE interface 914c 3rd VirtIO-BE interface 922a 1st VirtIO-FE 922b 2nd VirtIO-FE 922c 3rd VirtIO-FE
Claims
1. An evaluation support device that supports evaluation of a guest virtual machine mounted in an ECU (Electronic Control Unit) of a vehicle, comprising: a peripheral device emulation unit that emulates the behavior of each of a plurality of devices mounted on the vehicle; a synchronization input / output unit that receives a plurality of first messages from the peripheral device emulation unit and outputs the plurality of first messages to the guest virtual machine that is an evaluation target and is located outside the vehicle and outside the ECU; The synchronization input / output unit outputting each of the plurality of first messages to the guest virtual machine in synchronization with the behavior of each of the plurality of devices; Evaluation support device.
2. The peripheral device emulation unit sending the plurality of first messages, each time stamped, to the synchronization input / output unit; The synchronization input / output unit outputting each of the plurality of first messages to the guest virtual machine at a timing according to the timestamp attached to the first message, thereby synchronizing the output of each of the plurality of first messages to the guest virtual machine with the behavior of each of the plurality of devices; The evaluation support device according to claim 1 .
3. The peripheral device emulation unit transmitting the plurality of first messages, each having type information attached thereto, to the synchronization input / output unit; the type information attached to each of the plurality of first messages indicates a type of the first message; The synchronization input / output unit When each of the plurality of first messages is output to the guest virtual machine, writing each of the plurality of first messages into a shared memory of a virtual device driver associated with the type information attached to the first message, among a plurality of virtual device drivers included in the guest virtual machine; The evaluation support device according to claim 1 .
4. The synchronization input / output unit when writing the first message to the shared memory of the virtual device driver, converting a data structure of the first message into a data structure corresponding to the virtual device driver; The evaluation support device according to claim 3 .
5. The synchronization input / output unit When a plurality of second messages are received from the guest virtual machine, causing the peripheral device emulation unit to execute processing corresponding to each of the plurality of second messages in synchronization with reception of each of the plurality of second messages. The evaluation support device according to claim 1 .
6. The synchronization input / output unit assigning a timestamp to each of the plurality of second messages according to the timing at which the second message was received, and transmitting the plurality of second messages to which the timestamp has been assigned to the peripheral device emulation unit, thereby synchronizing the reception of each of the plurality of second messages with processing by the peripheral device emulation unit according to each of the plurality of second messages; The evaluation support device according to claim 5 .
7. the peripheral device emulation unit and the synchronous input / output unit transmit and receive messages based on the DDS (Data Distribution Service) specification; The evaluation support device according to any one of claims 1 to 6.
8. the peripheral device emulation unit and the synchronous input / output unit transmit and receive messages using pub / sub (publish / subscribe) messaging; The evaluation support device according to any one of claims 1 to 6.
9. An evaluation support method in which an evaluation support device supports evaluation of a guest virtual machine mounted in an ECU (Electronic Control Unit) of a vehicle, the method comprising: emulating the behavior of each of a plurality of devices mounted on the vehicle; receiving a plurality of first messages transmitted by the emulator, and outputting the plurality of first messages to the guest virtual machine to be evaluated that is located outside the vehicle and outside the ECU; In outputting the plurality of first messages, outputting each of the plurality of first messages to the guest virtual machine in synchronization with the behavior of each of the plurality of devices; Evaluation support methods.
10. A program for supporting evaluation of a guest virtual machine mounted on an ECU (Electronic Control Unit) of a vehicle, comprising: emulating the behavior of each of a plurality of devices mounted on the vehicle; receiving a plurality of first messages transmitted by the emulation and outputting the plurality of first messages to the guest virtual machine to be evaluated that is located outside the vehicle and outside the ECU; In outputting the plurality of first messages, outputting each of the plurality of first messages to the guest virtual machine in synchronization with the behavior of each of the plurality of devices; program.
Citation Information
Patent Citations
Vehicle development assistance system
WO2022259342A1