Dual-host system, intelligent cabin and intelligent vehicle

By adopting a dual-host system in the smart cockpit, the virtual machine monitor drives each virtual host to provide virtualized back-end services, solving the problem of insufficient performance of the RTOS microkernel architecture, achieving faster hardware access speeds and smoother user experience.

CN119872442AActive Publication Date: 2025-04-25ZEBRED NETWORK TECH CO LTD
View PDF 8 Cites 0 Cited by

Patent Information

Application Number
CN202411941525.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2024-12-25
Publication Date
2025-04-25
Estimated Expiration
2044-12-25

AI Technical Summary

Technical Problem

RTOS's microkernel architecture leads to insufficient performance and cannot guarantee the smoothness of Guest VM access to hardware. Especially when the number of Guest VMs increases, delays and lags occur frequently, seriously affecting the use of the smart cockpit.

Method used

The dual-host system is adopted, including a first virtual host, a second virtual host and a virtual slave. The hardware access request is obtained through the virtual machine monitor, and each virtual host is driven to provide virtualized back-end services, so as to realize that the second virtual host passes through the first virtual host and the virtual slave accesses the physical hardware device through the second virtual host.

Benefits of technology

By adding virtual hosts to support parallel response to hardware access requests, it will make up for the shortcomings of insufficient performance of a single host, improve hardware access speed, reduce latency and lag, and improve the user experience of the smart cockpit.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119872442A_ABST
    Figure CN119872442A_ABST
Patent Text Reader

Abstract

The invention discloses a dual-host system, an intelligent cabin and an intelligent vehicle. The dual-host system comprises a first virtual host, a second virtual host, a virtual slave, a virtual machine monitor and physical hardware equipment, both the first virtual host and the second virtual host are configured with virtualization back-end services; both the second virtual host and the virtual slave are configured with virtualization front-end services; the virtual machine monitor is used for acquiring hardware access requests initiated by the second virtual host and the virtual slave respectively by utilizing the virtualization front-end service; and according to respective hardware access requests of the second virtual host and the virtual slave, driving the first virtual host and the second virtual host to provide virtual back-end services respectively, so that the second virtual host accesses the physical hardware equipment through the first virtual host, and the virtual slave accesses the physical hardware equipment through the second virtual host.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to the field of intelligent driving technology, and in particular to a dual host system, an intelligent cockpit and an intelligent vehicle. Background Art

[0002] As the CPU computing power of the vehicle-mounted SOC (System On a Chip) increases, in smart cockpit systems with functional safety requirements, virtual machine control technology can be used to support running multiple systems on the same chip, such as running RTOS (Real-time operating system), Linux operating system, and Android operating system on the same chip. Among them, RTOS is responsible for instrument functional safety scenarios; Linux is responsible for vehicle control-related scenarios; Android is responsible for entertainment ecosystem scenarios. Virtual machine control technology enables mutual access among the three operating systems of RTOS+Linux+Android in a "one master and multiple slaves" mode.

[0003] In the traditional access mode, the main difference between Host VM (primary virtual machine) and Guest VM (secondary virtual machine) is the difference in access devices. Host VM can directly access all physical hardware devices, while Guest VM needs to use Virtio (a universal semi-virtualized device simulation standard) virtualization to access physical hardware devices. The virtio backend service is deployed in Host VM, and Guest VM completes access to physical hardware devices through the virtio front-end driver and the virtio backend service in Host VM.

[0004] Referring to the above basic theory, when the smart cockpit system is in the "one master and multiple slaves" mode, since RTOS is a system with strict requirements on vehicle communication and safety and cannot be used as a Guest VM, RTOS must be used as a Host VM. The Virtio back-end service must also be deployed on the RTOS. Linux and Android complete the access to physical hardware devices under the control of the RTOS.

[0005] However, due to the performance defects of the RTOS microkernel architecture, the smoothness of Guest VM access to hardware cannot be guaranteed. Especially when the number of Guest VMs increases, delays and freezes frequently occur, seriously affecting the use of the smart cockpit. Summary of the invention

[0006] This specification provides a dual-host system, a smart cockpit and a smart vehicle to solve or partially solve the technical problem of hardware access delay caused by insufficient performance of a single host.

[0007] In a first aspect of the present specification, a dual-host system is disclosed, the system comprising: a first virtual host, a second virtual host, a virtual slave, a virtual machine monitor, and a physical hardware device; wherein the first virtual host, the second virtual host, and the virtual slave are respectively connected to the virtual machine monitor, and the virtual machine monitor is connected to the physical hardware device;

[0008] The first virtual host and the second virtual host are both configured with virtualized backend services; the second virtual host and the virtual slave are both configured with virtualized frontend services;

[0009] The virtual machine monitor is used to obtain hardware access requests initiated by the second virtual host and the virtual slave respectively using the virtualization front-end service; according to the hardware access requests of the second virtual host and the virtual slave respectively, drive the first virtual host and the second virtual host respectively to provide the virtualization back-end service, so that the second virtual host accesses the physical hardware device through the first virtual host, and the virtual slave accesses the physical hardware device through the second virtual host.

[0010] Optionally, the virtual machine monitor specifically includes:

[0011] A capture module, used for capturing hardware access requests initiated by the second virtual host and the virtual slave using the virtualization front-end service;

[0012] A virtualization engine module is used to drive the first virtual host to provide the virtualization backend service according to the hardware access request of the second virtual host, so that the second virtual host can access the physical hardware device through the first virtual host; and according to the hardware access request of the virtual slave, drive the second virtual host to provide the virtualization backend service respectively, so that the virtual slave can access the physical hardware device through the second virtual host.

[0013] Optionally, the virtualization engine module is also used to drive the first virtual host and / or the second virtual host to provide the virtualization backend service when the virtual slave initiates a hardware access request, so that the virtual slave can access the physical hardware device through the first virtual host and / or the second virtual host.

[0014] Optionally, the virtualization engine module is further used to drive the first virtual host to provide the virtualization backend service when the second virtual host independently initiates a hardware access request, so that the second virtual host can access the physical hardware device through the first virtual host.

[0015] Optionally, the virtualization engine module further includes:

[0016] A parsing unit, configured to parse the hardware access requests of the second virtual host and the virtual slave to obtain the identity of the second virtual host and the identity of the virtual slave;

[0017] a channel allocation unit, configured to allocate a corresponding first virtual channel with reference to the identity of the second virtual host, and allocate a corresponding second virtual channel with reference to the identity of the virtual slave; wherein the identity pair configured for the first virtual channel is (H-VM 1 , H-VM 2 ), the identity pair configured for the second virtual channel is (G, H-VM 1 ), H-VM 1 Indicates the identity of the second virtual host, H-VM 2 represents the identity of the first virtual host, and G represents the identity of the virtual slave;

[0018] The output unit is used to transmit the hardware access request of the second virtual host to the first virtual host by using the first virtual channel; and transmit the hardware access request of the virtual slave to the second virtual host by using the second virtual channel.

[0019] Optionally, the virtualization engine module further includes: a configuration unit, configured to configure the first virtual channel, the second virtual channel and the third virtual channel; wherein the identity pair configured for the third virtual channel is (G, H-VM 2 ).

[0020] Optionally, the first virtual host specifically includes:

[0021] A first virtualization extension module, configured to receive a hardware access request from the second virtual host;

[0022] The first virtualized backend service module is configured with the virtualized backend service and is used to access the corresponding physical hardware device according to the hardware access request of the second virtual host.

[0023] Optionally, the second virtual host specifically includes:

[0024] A second virtualization extension module, used for receiving a hardware access request of the second virtual host;

[0025] The second virtualized backend service module is configured with the virtualized backend service and is used to access the corresponding physical hardware device according to the hardware access request of the virtual slave.

[0026] Optionally, the second virtual host further includes: a first virtualized front-end service module configured with the virtualized front-end service adapted to the first virtual host.

[0027] Optionally, the virtual slave machine specifically includes:

[0028] The first virtualized front-end service module is configured with the virtualized front-end service adapted to the first virtual host;

[0029] The second virtualized front-end service module is configured with the virtualized front-end service adapted to the second virtual host.

[0030] A second aspect of this specification discloses a smart cockpit, comprising the dual host system as described in the first aspect.

[0031] A third aspect of this specification discloses an intelligent vehicle, comprising the dual host system as described in the first aspect.

[0032] Through one or more embodiments of this specification, this specification has the following beneficial effects or advantages:

[0033] The dual host solution in this specification includes: a first virtual host, a second virtual host, a virtual slave, the virtual machine monitor, and a physical hardware device. By adding a virtual host (such as a macro kernel virtual host) on the basis of the original virtual host (such as a micro kernel virtual host) to build a dual host to support parallel response to different hardware access requests, thereby compensating for the performance deficiency of a single host and improving the hardware access speed.

[0034] The above description is only an overview of the technical solution of this specification. In order to more clearly understand the technical means of this specification, it can be implemented in accordance with the contents of the specification. In order to make the above and other purposes, features and advantages of this specification more obvious and easy to understand, the specific implementation methods of this specification are listed below. BRIEF DESCRIPTION OF THE DRAWINGS

[0035] Various other advantages and benefits will become apparent to those of ordinary skill in the art by reading the detailed description of the preferred embodiments below. The accompanying drawings are only for the purpose of illustrating the preferred embodiments and are not to be considered as limiting the present specification. Also, the same reference symbols are used throughout the accompanying drawings to represent the same components. In the accompanying drawings:

[0036] Figure 1 A schematic diagram of a dual host system according to an embodiment of the present specification is shown;

[0037] Figure 2 A schematic diagram of the mapping relationship of virtualized services configured for three virtual machines according to an embodiment of the present specification is shown. DETAILED DESCRIPTION

[0038] The exemplary embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although exemplary embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided in order to enable a more thorough understanding of the present disclosure and to fully convey the scope of the present disclosure to those skilled in the art. The embodiments of this specification provide a dual-host system. In practical applications, the dual-host system disclosed in this embodiment can be applied to high-precision equipment such as computers, vehicle-mounted equipment, smart cockpits, and smart vehicles.

[0039] See also Figure 1 , is a schematic diagram of a dual-host system provided in an embodiment of the present specification, the system comprising: a first virtual host 11, a second virtual host 12, a virtual slave 13, a virtual machine monitor 14, and a physical hardware device 15.

[0040] The first virtual host 11, the second virtual host 12, and the virtual slave 13 are respectively equipped with different operating systems. For example, the first virtual host 11 is equipped with an RTOS operating system or a QNX operating system, the second virtual host 12 is equipped with a Linux operating system, and the virtual slave 13 is equipped with an Android operating system, but this is not a limitation.

[0041] The first virtual host 11 , the second virtual host 12 , and the virtual slave 13 are respectively connected to a virtual machine monitor 14 , and the virtual machine monitor 14 is connected to a physical hardware device 15 .

[0042] The first virtual host 11 can be a microkernel virtual host or a macrokernel virtual host; the second virtual host 12 can be a microkernel virtual host or a macrokernel virtual host. In the dual host system of the embodiment of this specification, the application scenarios of dual microkernel virtual hosts, dual macrokernel virtual hosts, and one microkernel virtual host and one macrokernel virtual host can be included.

[0043] Microkernel virtual hosts and macrokernel virtual hosts are divided according to the operating system.

[0044] Specifically, a microkernel virtual host refers to a virtual host that runs a microkernel operating system. In a microkernel virtual host, the core functions of the operating system are extracted to form a microkernel, which only contains the most basic functions such as process scheduling, memory management, and interrupt handling. Other system services, such as file systems, device drivers, and network protocol stacks, run as independent service programs in user space and communicate with the microkernel through the message passing mechanism provided by the microkernel. In a microkernel virtual host, all core functions and system services of the operating system are integrated into a single kernel, such as process management, memory management, file systems, device drivers, network protocol stacks, and other system functions.

[0045] An example of a microkernel virtual host is the QNX operating system, and an example of a macrokernel virtual host is the Linux operating system.

[0046] The first virtual host 11 and the second virtual host 12 are dual hosts, and both are configured with virtualized backend services. The second virtual host 12 and the virtual slave 13 are both configured with virtualized frontend services, such as Virtio virtualized backend services and Virtio virtualized frontend services.

[0047] There are many types of physical hardware devices 15. For example, UFS (Universal Flash Storage), GPU (Graphics Processing Unit), network card, hard disk, etc. Since the embodiment of this specification is equipped with a dual-host system in the smart cockpit, the security devices in the physical hardware device 15 can be assigned to the first virtual host 11, and other virtual machines (second virtual host 12, virtual slave 13) access the first virtual host 11 through Virtio virtualization, ensuring the functional safety requirements of the first virtual host 11. Assigning the non-security class to the second virtual host 12 not only alleviates the access pressure of the first virtual host 11 and ensures the device access speed, but also reduces the CPU loss caused by device sharing by a single virtual host.

[0048] The virtual machine monitor 14 is between the basic physical hardware device 15 and multiple virtual machines, and can allow the operating systems and applications installed in multiple virtual machines to share the physical hardware device 15. Based on the dual-host system of this embodiment, the virtual machine monitor 14 is used to allocate a corresponding virtualization channel for the hardware access request issued by each virtual machine, and notify the corresponding virtual host through a virtual interrupt mechanism.

[0049] The virtual machine monitor 14 can support running Virtio virtualization backend services on two virtual hosts at the same time to access the physical hardware device 15. In the specific implementation process, the virtual machine monitor is used to capture the hardware access requests initiated by the second virtual host 12 and the virtual slave 13 using the virtualization front-end service; according to the hardware access requests of the second virtual host 12 and the virtual slave 13, the first virtual host 11 and the second virtual host 12 are driven in parallel to provide virtualization backend services. Specifically, the virtual machine monitor 14 drives the first virtual host 11 and the second virtual host 12 in parallel to provide virtualization backend service micro-interfaces. The core virtual host 11 and the second virtual host 12 run the Virtio virtualization backend service in parallel, so that the second virtual host 12 can access the physical hardware device 15 through the first virtual host 11, and the virtual slave 13 can access the physical hardware device 15 through the second virtual host 12. Of course, the physical hardware device 15 accessed by the second virtual host 12 and the virtual slave 13 can be the same or different.

[0050] For detailed description and explanation of this specification, see below. Figure 1 .

[0051] The first virtual host 11 is internally provided with: a first virtualization extension module 111 and a first virtualization backend service module 112. The first virtualization backend service module 112 is configured with a virtualization backend service; the first virtualization extension module 111 is responsible for connecting the virtual machine monitor 14 and the first virtualization backend service module 112, and mainly processes memory mapping and interrupt notification mechanisms.

[0052] The second virtual host 12 is internally provided with: a second virtualization extension module 121, a first virtualization front-end service module 123, and a second virtualization back-end service module 122. The first virtualization front-end service module 123 is configured with a virtualization front-end service adapted to the first virtual host 11; the second virtualization back-end service module 122 is configured with a virtualization back-end service adapted to the second virtual host 12; the second virtualization extension module 121 is responsible for connecting the virtual machine monitor 14 and the second virtualization back-end service module 122, and mainly processes memory mapping and interrupt notification mechanisms.

[0053] The virtual slave 13 is internally provided with: a first virtualized front-end service module 123 and a second virtualized front-end service module 131. The first virtualized front-end service module 123 is configured with virtualized front-end services adapted to the first virtual host 11; the second virtualized front-end service module 131 is configured with virtualized front-end services adapted to the second virtual host 12.

[0054] See below Figure 2, is a schematic diagram of the mapping relationship of the virtualized services configured in the three virtual machines. It is worth noting that since the virtualized backend services of this embodiment are configured on different virtual hosts, in order to facilitate distinction, the virtualized backend services configured on the first virtual host 11 are referred to as: the first virtualized backend service; the virtualized backend services configured on the second virtual host 12 are referred to as: the second virtualized backend service. In addition, since the virtualized front-end services of this embodiment are configured on different virtual machines, in order to facilitate distinction, the virtualized front-end services corresponding to the first virtualized back-end services are referred to as: the first virtualized front-end services; the virtualized front-end services corresponding to the second virtualized back-end services are referred to as: the second virtualized front-end services.

[0055] In the first virtual host 11, a first virtualized backend service is configured.

[0056] In the second virtual host 12, a second virtualized backend service and a first virtualized frontend service are configured.

[0057] In the virtual slave 13, a first virtualized front-end service and a second virtualized front-end service are configured.

[0058] Based on the above-mentioned configuration services, the first virtualized backend service configured in the first virtual host 11 can support and respond to hardware access requests of the second virtual host 12 and the virtual slave 13 in parallel, that is, the second virtual host 12 and the virtual slave 13 can access the physical hardware device 15 through the first virtual host 11 in parallel.

[0059] The second virtual host 12 can simultaneously support and respond to the hardware access request of the virtual slave 13 while accessing the physical device hardware through the first virtual host 11 .

[0060] The virtual slave 13 can access different physical hardware devices 15 in parallel through the second virtual master 12 and the first virtual master 11 .

[0061] The above is the configuration of each virtual machine. The configuration of the virtual machine monitor 14 is introduced below.

[0062] Since the present embodiment is a dual-host system, the virtual machine monitor 14 will configure different virtualization channels to support the interaction of each virtual machine during initialization. Specifically, the virtual machine monitor 14 includes: a configuration unit for configuring a first virtual channel, a second virtual channel, and a third virtual channel. Specifically, a corresponding virtual host identity, a corresponding virtual slave 13 identity, a memory area, and interrupt information are configured in each virtual channel. Among them, the virtual host identity and the virtual slave 13 identity configured in the virtual channel constitute an identity pair, which is used to verify the identity of the virtual host and the virtual slave 13, and is only used for communication between the virtual host and the virtual slave 13 that have passed the verification. Among them, the identity pair configured for the first virtual channel is (H-VM 1 , H-VM 2 ), H-VM 1 Indicates the identity of the second virtual host 12, H-VM 2 The identity pair of the first virtual host 11 is (G, H-VM 1 ), G represents the identity of the virtual slave 13, indicating that the virtual slave 13 communicates with the second virtual host 12; the identity pair configured for the third virtual channel is (G, H-VM 2 ), indicating that the virtual slave 13 and the first virtual host 11 communicate. The memory area is used for storage, and the interrupt information is used to interrupt the current execution operation, so that the virtual host that has passed the identification verification can communicate with the virtual slave 13. The memory area and interrupt information that appear later have the same function, except that the storage and execution subjects are different, so they will not be repeated later.

[0063] In an optional implementation, when the virtual machine monitor 14, the first virtual host 11, the second virtual host 12, and the virtual slave 13 are started for the first time, an initialization operation is performed.

[0064] In the initialization operation of the virtual machine monitor 14, the configuration unit is used to configure the first virtual channel, the second virtual channel and the third virtual channel, and the corresponding virtual host identity, the corresponding virtual slave 13 identity, the memory area and the interrupt information are configured in different channels, and initialization operations such as memory mapping and interrupt registration are performed.

[0065] In the initialization operation of the first virtual host 11, different virtual channel nodes are configured, and each virtual channel has a corresponding identity pair, memory area and interrupt information. Specifically, the first virtual host 11 configures two virtual channels according to the first virtualized backend service: the first virtual channel and the third virtual channel, as well as the memory area and interrupt information corresponding to each channel.

[0066] In the initialization operation of the second virtual host 12, different virtual channel nodes are configured, and each virtual channel has a corresponding identity pair, memory area and interrupt information. Specifically, since the second virtual host 12 needs to run both the second virtualized backend service and the first virtualized frontend service, the initialization is divided into two parts: 1. When configuring based on the second virtualized backend service, the second virtual host 12 configures the second virtual channel, memory area and interrupt information; 2. When configuring based on the first virtualized frontend service, the second virtual host 12 configures the memory area and interrupt information of the hardware access request.

[0067] In the initialization operation of the virtual slave 13, the memory area and the interrupt information are configured according to the first virtualized backend service and according to the second virtualized backend service respectively.

[0068] The above is an introduction to the initialization operation. The following is an introduction to the communication control logic of the virtual machine in the dual-host system. In this embodiment, the communication control logic of the virtual machine includes multiple types. For example, the second virtual host 12 and the virtual slave 13 access the physical hardware device 15 in parallel through the dual hosts, the second virtual host 12 and the virtual slave 13 access the physical hardware device 15 in parallel through the single host, the second virtual host 12 accesses the physical hardware device 15 alone, and the virtual slave 13 accesses the physical hardware device 15 alone (using a single host) or in parallel (using dual hosts). They are introduced below.

[0069] When the second virtual host 12 and the virtual slave 13 access the physical hardware device 15 through the dual hosts in parallel, the virtual slave 13 uses the virtualization front-end service configured by the second virtualization front-end service module 131, and the second virtual host 12 uses the virtualization front-end service configured by the first virtualization front-end service module 123 to respectively initiate hardware access requests.

[0070] The virtual machine monitor 14 includes: a capture module and a virtualization engine module.

[0071] The capture module is used to obtain the hardware access requests initiated by the second virtual host 12 and the virtual slave 13 respectively using the virtualization front-end service.

[0072] The virtualization engine module is used to drive the first virtual host 11 to provide virtualization backend services according to the hardware access request of the second virtual host 12, so that the second virtual host 12 can access the physical hardware device 15 through the first virtual host 11; and drive the second virtual host 12 to provide virtualization backend services according to the hardware access request of the virtual slave 13, so that the virtual slave 13 can access the physical hardware device 15 through the second virtual host 12. The first virtual host 11 and the second virtual host 12 run the Virtio virtualization backend service in parallel, so that the second virtual host 12 can access the physical hardware device 15 through the first virtual host 11, and the virtual slave 13 can access the physical hardware device 15 through the second virtual host 12. Of course, the physical hardware device 15 accessed by the second virtual host 12 and the virtual slave 13 can be the same or different.

[0073] In the specific implementation process, the virtualization engine module includes: a parsing unit, a channel allocation unit, and an output unit. The parsing unit is used to parse the hardware access requests of the second virtual host 12 and the virtual slave 13 to obtain the identity H-VM of the second virtual host 12. 1 and the identity G of the virtual slave 13; a channel allocation unit for referring to the identity H-VM of the second virtual host 12 1 The corresponding first virtual channel is allocated, and the corresponding second virtual channel is allocated with reference to the identity G of the virtual slave 13. The output unit is used to transmit the hardware access request of the second virtual host 12 to the first virtual host 11 by using the first virtual channel; and transmit the hardware access request of the virtual slave 13 to the second virtual host 12 by using the second virtual channel.

[0074] In this embodiment, a virtualized backend service configured in the first virtual host 11 provides a virtualized service for the second virtual host 12 to access the corresponding physical hardware device 15. Specifically, in the first virtual host 11, the first virtualized extension module 111 is used to receive a hardware access request from the second virtual host 12; the first virtualized backend service module 112 is configured with a virtualized backend service, and is used to access the corresponding physical hardware device 15 according to the hardware access request from the second virtual host 12.

[0075] Correspondingly, the virtualized backend service configured by the second virtual host 12 provides a virtualized service for the virtual slave 13 to access the corresponding physical hardware device 15. In the second virtual host 12, the second virtualization extension module 121 is used to receive the hardware access request of the second virtual host 12; the second virtualization backend service module 122 is configured with a virtualized backend service, which is used to access the corresponding physical hardware device 15 according to the hardware access request of the virtual slave 13.

[0076] In an optional embodiment, when the second virtual host 12 and the virtual slave 13 access the physical hardware device 15 in parallel through a single host (the first virtual host 11), the virtual slave 13 uses the virtualization front-end service configured by the first virtualization front-end service module 123, and the second virtual host 12 uses the virtualization front-end service configured by the first virtualization front-end service module 123 to respectively initiate hardware access requests.

[0077] The virtual machine monitor 14 is used to capture the hardware access requests of the second virtual host 12 and the virtual slave 13, and according to the hardware access requests of the second virtual host 12 and the virtual slave 13, drive the first virtual host 11 to provide virtualized backend services, so that the second virtual host 12 accesses and the virtual slave 13 accesses the physical hardware device 15 through the first virtual host 11. Specifically, the virtual machine monitor 14 is used to configure the first virtual channel and the third virtual channel according to the hardware access requests of the second virtual host 12 and the virtual slave 13, and transmit the hardware access request of the second virtual host 12 to the first virtual host 11 by using the first virtual channel; and transmit the hardware access request of the virtual slave 13 to the first virtual host 11 by using the third virtual channel.

[0078] In this embodiment, the first virtualized backend service configured in the first virtual host 11 supports and responds to the hardware access requests of the second virtual host 12 and the virtual slave 13 in parallel. In the first virtual host 11, the first virtualized extension module 111 is used to receive the hardware access requests sent by the second virtual host 12 and the virtual slave 13 respectively; the first virtualized backend service module 112 is configured with a virtualized backend service, which is used to access the corresponding physical hardware device 15 according to the hardware access requests of the second virtual host 12 and the virtual slave 13 respectively.

[0079] In an optional implementation, when the second virtual host 12 accesses the physical hardware device 15 independently, the second virtual host 12 initiates a hardware access request using the virtualization front-end service configured by the first virtualization front-end service module 123 .

[0080] The capture module in the virtual machine monitor 14 is used to capture the hardware access request of the second virtual host 12; the virtualization engine module is used to drive the first virtual host 11 to provide virtualization backend services when the second virtual host 12 independently initiates a hardware access request, so that the second virtual host 12 can access the physical hardware device 15 through the first virtual host 11. Specifically, the virtual machine monitor 14 is used to configure the first virtual channel according to the hardware access request of the second virtual host 12, and transmit the hardware access request of the second virtual host 12 to the first virtual host 11 by using the first virtual channel.

[0081] In this embodiment, the first virtualized backend service configured in the first virtual host 11 supports responding to the hardware access request of the second virtual host 12. Specifically, in the first virtual host 11, the first virtualized extension module 111 is used to receive the hardware access request of the second virtual host 12; the first virtualized backend service module 112 is configured with a virtualized backend service, which is used to access the corresponding physical hardware device 15 according to the hardware access request of the second virtual host 12.

[0082] In an optional embodiment, when the virtual slave 13 accesses the physical hardware device 15, the second virtual host 12 initiates a hardware access request using the virtualization front-end service configured by the first virtualization front-end service module 123 and / or the virtualization front-end service configured by the second virtualization front-end service module 131.

[0083] The capture module in the virtual machine monitor 14 is used to capture the hardware access request of the virtual slave 13; the virtualization engine module is also used to drive the first virtual host 11 and / or the second virtual host 12 to provide the virtualization backend service when the virtual slave 13 initiates a hardware access request, so that the virtual slave 13 can access the physical hardware device 15 through the first virtual host 11 and / or the second virtual host 12.

[0084] The virtualized backend services configured in the first virtual host 11 and / or the second virtual host 12 each support responding to the hardware access request of the virtual slave 13. Specifically, in the first virtual host 11, the first virtualized extension module 111 is used to receive the hardware access request of the virtual slave 13; the first virtualized backend service module 112 is configured with a virtualized backend service, which is used to access the corresponding physical hardware device 15 according to the hardware access request of the virtual slave 13. And / or, in the second virtual host 12, the second virtualized extension module 121 is used to receive the hardware access request of the virtual slave 13; the second virtualized backend service module 122 is configured with a virtualized backend service, which is used to access the corresponding physical hardware device 15 according to the hardware access request of the virtual slave 13.

[0085] The above is the communication control logic of the virtual machine in the dual-host system. By adding a second virtual host 12 on the basis of the original first virtual host 11 to build a dual host to support parallel response to different hardware access requests, the performance defect of a single host can be compensated and the hardware access speed can be improved.

[0086] The following uses RTOS system, Linux system and Android system as examples to illustrate the differences between this solution and the prior art.

[0087] In the prior art, when Linux and Android systems access shared devices, they can only access them through the Virtio virtualization service provided by the RTOS system. Even if the device is only used by Linux and Android systems, the Virtio virtualization backend service can only be deployed to the RTOS system and the physical hardware device can be transparently transmitted to the RTOS system. When Linux and Android systems access the device, they must access the device through the RTOS system. Since the microkernel architecture of the RTOS system is not as good as the macrokernel architecture of systems such as Linux, coupled with Virtio virtualization, the performance of the RTOS single-host system will be reduced.

[0088] This manual supports the dual-host system solution, configuring the RTOS system and the Linux system as virtual hosts at the same time, assigning security devices to the first virtual host: RTOS uses the deployment of Virtio backend services, and some peripherals (non-security devices, devices that do not require RTOS system control) are transparently transmitted to the second virtual host: Linux and deploy Virtio backend services. The access of the Linux system and the Android system can achieve the purpose of device sharing through their respective virtual host channels, without congestion, which not only ensures the performance of device access, but also reduces the CPU loss caused by using a single virtual host for device sharing in the prior art.

[0089] In this specification, the single-host solution is expanded to a dual-host solution, and Virtio virtualization services can be run on two virtual hosts. In addition, the solution in this specification can take into account both performance and functional safety. The RTOS functional safety domain is run in the first virtual host, the non-functional safety domain is run in the second virtual host, and the entertainment domain is run in the virtual slave. In this way, the functional safety requirements can be guaranteed through the first virtual host, and the performance of the non-functional safety domain can be guaranteed through the second virtual host.

[0090] Based on the same inventive concept as one or more of the aforementioned embodiments, the following embodiment discloses a smart cockpit, which includes a dual-host system as described in any of the aforementioned embodiments, to support the smart cockpit to respond quickly to the driver's access hardware requirements.

[0091] Based on the same inventive concept as one or more of the above embodiments, the following embodiment discloses an intelligent vehicle, such as an unmanned vehicle, an electric vehicle, a gasoline vehicle, and other types of vehicles. The intelligent vehicle of this implementation has a dual host system as described in any of the above embodiments to support the intelligent vehicle to respond quickly to the driver's access hardware requirements.

[0092] The algorithms and displays provided herein are not inherently related to any particular computer, virtual system, or other device. Various general purpose systems may also be used together with the teachings based thereon. Based on the above description, it is apparent that the structure required for constructing such systems is. In addition, this specification is not directed to any particular programming language either. It should be understood that the contents of this specification described herein may be implemented using various programming languages, and the description of the specific languages ​​above is intended to disclose the preferred implementation of this specification.

[0093] In the description provided herein, a large number of specific details are described. However, it is understood that the embodiments of this description can be practiced without these specific details. In some instances, well-known methods, structures and techniques are not shown in detail so as not to obscure the understanding of this description.

[0094] Similarly, it should be understood that in order to streamline the present disclosure and aid in understanding one or more of the various inventive aspects, in the above description of the exemplary embodiments of the present specification, the various features of the present specification are sometimes grouped together into a single embodiment, figure, or description thereof. However, this disclosed method should not be interpreted as reflecting the following intention: the claimed specification requires more features than the features explicitly recited in each claim. More specifically, as reflected in the claims below, the inventive aspects lie in less than all the features of the individual embodiments disclosed above. Therefore, the claims that follow the specific embodiment are hereby expressly incorporated into the specific embodiment, with each claim itself serving as a separate embodiment of the present specification.

[0095] Those skilled in the art will appreciate that the modules in the devices in the embodiments may be adaptively changed and arranged in one or more devices different from the embodiments. The modules or units or components in the embodiments may be combined into one module or unit or component, and in addition they may be divided into a plurality of submodules or subunits or subcomponents. Except that at least some of such features and / or processes or units are mutually exclusive, all features disclosed in this specification (including the accompanying claims, abstracts and drawings) and all processes or units of any method or device disclosed in this manner may be combined in any combination. Unless otherwise expressly stated, each feature disclosed in this specification (including the accompanying claims, abstracts and drawings) may be replaced by an alternative feature providing the same, equivalent or similar purpose.

[0096] In addition, those skilled in the art will appreciate that, although some embodiments herein include certain features included in other embodiments but not other features, the combination of features of different embodiments is meant to be within the scope of this specification and form different embodiments. For example, in the claims below, any one of the claimed embodiments may be used in any combination.

[0097] The various component embodiments of this specification may be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. It should be understood by those skilled in the art that a microprocessor or digital signal processor (DSP) may be used in practice to implement some or all functions of some or all components of a gateway, a proxy server, or a system according to an embodiment of this specification. This specification may also be implemented as a device or apparatus program (e.g., a computer program and a computer program product) for executing part or all of the methods described herein. Such a program implementing this specification may be stored on a computer-readable medium, or may have the form of one or more signals. Such a signal may be downloaded from an Internet website, or provided on a carrier signal, or provided in any other form.

[0098] It should be noted that the above embodiments illustrate rather than limit the present specification, and that those skilled in the art may devise alternative embodiments without departing from the scope of the appended claims. In the claims, any reference symbol between brackets shall not be construed as a limitation on the claims. The word "comprising" does not exclude the presence of elements or steps not listed in the claims. The word "one" or "an" preceding an element does not exclude the presence of a plurality of such elements. The present specification may be implemented with the aid of hardware comprising a number of different elements and with the aid of a suitably programmed computer. In a unit claim enumerating a number of devices, several of these devices may be embodied by the same hardware item. The use of the words first, second, and third, etc., does not indicate any order. These words may be interpreted as names.

Claims

1. A dual host system, the system comprising: A first virtual host, a second virtual host, a virtual slave, a virtual machine monitor, and a physical hardware device; wherein the first virtual host, the second virtual host, and the virtual slave are respectively connected to the virtual machine monitor, and the virtual machine monitor is connected to the physical hardware device; The first virtual host and the second virtual host are both configured with virtualized backend services; the second virtual host and the virtual slave are both configured with virtualized frontend services; The virtual machine monitor is used to obtain hardware access requests initiated by the second virtual host and the virtual slave respectively using the virtualization front-end service; according to the hardware access requests of the second virtual host and the virtual slave respectively, drive the first virtual host and the second virtual host respectively to provide the virtualization back-end service, so that the second virtual host accesses the physical hardware device through the first virtual host, and the virtual slave accesses the physical hardware device through the second virtual host.

2. The dual-host system according to claim 1, wherein the virtual machine monitor comprises: A capture module, used for capturing hardware access requests initiated by the second virtual host and the virtual slave using the virtualization front-end service; A virtualization engine module is used to drive the first virtual host to provide the virtualization backend service according to the hardware access request of the second virtual host, so that the second virtual host can access the physical hardware device through the first virtual host; and according to the hardware access request of the virtual slave, drive the second virtual host to provide the virtualization backend service respectively, so that the virtual slave can access the physical hardware device through the second virtual host.

3. In the dual-host system as described in claim 2, the virtualization engine module is also used to drive the first virtual host and / or the second virtual host to provide the virtualization back-end service when the virtual slave initiates a hardware access request, so that the virtual slave can access the physical hardware device through the first virtual host and / or the second virtual host.

4. In the dual-host system as described in claim 2, the virtualization engine module is also used to drive the first virtual host to provide the virtualization back-end service when the second virtual host independently initiates a hardware access request, so that the second virtual host can access the physical hardware device through the first virtual host.

5. The dual-host system according to claim 2, wherein the virtualization engine module further comprises: A parsing unit, configured to parse the hardware access requests of the second virtual host and the virtual slave to obtain the identity of the second virtual host and the identity of the virtual slave; A channel allocation unit, configured to allocate a corresponding first virtual channel with reference to the identity of the second virtual host, and allocate a corresponding second virtual channel with reference to the identity of the virtual slave; wherein the identity pair configured for the first virtual channel is (H-VM1, H-VM2), and the identity pair configured for the second virtual channel is (G, H-VM1), H-VM1 represents the identity of the second virtual host, H-VM2 represents the identity of the first virtual host, and G represents the identity of the virtual slave; The output unit is used to transmit the hardware access request of the second virtual host to the first virtual host by using the first virtual channel; and transmit the hardware access request of the virtual slave to the second virtual host by using the second virtual channel.

6. The dual-host system according to claim 5, wherein the virtualization engine module further comprises: A configuration unit is used to configure the first virtual channel, the second virtual channel and the third virtual channel; wherein the identity pair configured for the third virtual channel is (G, H-VM2).

7. The dual-host system according to claim 1, wherein the first virtual host comprises: A first virtualization extension module, configured to receive a hardware access request from the second virtual host; The first virtualized backend service module is configured with the virtualized backend service and is used to access the corresponding physical hardware device according to the hardware access request of the second virtual host.

8. The dual host system according to claim 1, wherein the second virtual host comprises: A second virtualization extension module, used for receiving a hardware access request of the second virtual host; The second virtualization backend service module is configured with the virtualization backend service and is used to access the corresponding physical hardware device according to the hardware access request of the virtual slave machine.

9. The dual host system according to claim 1 or 8, wherein the second virtual host further comprises: The first virtualized front-end service module is configured with the virtualized front-end service adapted to the first virtual host.

10. The dual-host system according to claim 9, wherein the virtual slave comprises: The first virtualized front-end service module is configured with the virtualized front-end service adapted to the first virtual host; The second virtualized front-end service module is configured with the virtualized front-end service adapted to the second virtual host.

11. An intelligent cockpit, comprising a dual host system as described in any one of claims 1 to 10.

12. An intelligent vehicle, comprising a dual host system as claimed in any one of claims 1 to 10.

Citation Information

Patent Citations

  • Method and apparatus for light-weight virtualization contexts

    CN107924442A

  • Master-slave system control method, hardware architecture and master-slave system

    CN109669725A

  • Double-platform operation and maintenance system and operation and maintenance method

    CN113496292A

  • LAN system of working vehicle

    JP2013126829A

  • Data storage system employing two-level scheduling of processing cores

    US10671453B1