分享好友 资讯首页 频道列表

域控制器DCU中为什么要使用Hypervisor?

2025-05-19 08:54

传统的汽车电子都是以电子控制单元ECU为基本单位,每个ECU具有专用的控制功能,是1个独立的电子模块,比如发动机控制单元ECU、ABS控制单元ECU等等。

随着处理器计算性能的提升,汽车电子架构也开始演变,逐渐开始使用了域控制器DCU的概念,DCU可以将不同ECU的功能整合到单个芯片上,成了新的电子控制模块。

随着DCU的出现,汽车中也开始使用Hypervisor技术,为什么DCU要使用Hypervisor呢?

1.Hypervisor基本概念

在介绍Hypervisor之前,我们要先了解下Supervisor。常见的电子模块的软件架构主要是硬件、操作系统和应用软件App。

图片

电子模块软件架构图

操作系统将内存分为两种不同的空间,内核空间用户空间,内核空间是操作系统内核访问的区域,独立于普通的应用程序,是受保护的内存空间,而用户空间通常是普通应用程序可访问的内存区域。

根据内核和用户程序的运行状态,操作系统又分为内核态用户态,内核态是操作系统内核所运行的模式,具有最高权限。内核态程序可以直接访问所有硬件资源并执行特权指令

用户态是普通应用程序所运行的模式,权限较低。用户态程序只能访问有限的资源,不能直接访问硬件资源或执行特权指令。

用户程序通过系统调用来请求操作系统提供的服务,如文件操作、网络通信等。用户态程序只能访问用户空间,而不能访问内核空间

操作系统运行在内核态是一种特权模式,在该模式下向下可访问处理器内核、外设、中断、异常等所有寄存器和内存资源;向上可以对应用软件中的进程进行调度,这就是Supervisor模式。

Supervisor相对应的是用户模式,也就是User模式,User模式只能访问指定的用户空间,不能访问内核空间,也不能直接访问硬件,必须通过系统调用才能与硬件资源进行交互。

总之,Supervisor的权限很大!

HypervisorHyper+Supervisor, Hyper是超级的意思,所以Hypervisor的权限更大Hypervisor除了向下对硬件资源有特权外,它还可以虚拟出硬件环境,将虚拟的硬件环境提供给上层的操作系统,所以它向上不是直接对应用程序进行调度,而是对控制应用程序的操作系统OS进行调度。

图片

Hypervisor软件架构图

Hypervisor是一种运行在硬件和操作系统之间的中间软件层。它的主要功能是管理操作系统,将底层的硬件资源(如 CPU、内存、存储和网络等)进行抽象和分配,使多个操作系统能够在同一个硬件上隔离运行。

2. Hypervisor的类型

Hypervisor的具体实现方式可以分为两类,即1 Hypervisor 2Hypervisor

1Hypervisor直接运行在物理硬件上,无需额外的操作系统支持,因此具有更高的性能和效率,也称为裸机型,适用于对系统稳定性、性能和管理功能要求较高的企业级应用。

2Hypervisor运行在现有的操作系统之上,依赖于宿主操作系统来管理硬件资源,也称为托管型,通常用于个人计算机和开发测试环境。

图片

1Hypervisor VS 2Hypervisor

嵌入式系统,尤其是汽车嵌入式系统,要求尽可能低的运算开销和尽可能高的实时性,所以主要使用1Hypervisor

3.Hypervisor的主要功能

Hypervisor主要有两大功能,1个是隔离,另一个是资源共享。

3.1隔离

隔离就是把物理层的硬件资源隔离成多台独立的逻辑控制系统,每个逻辑控制系统都有自己逻辑上独立的处理器、内存和各种外设,但实际上它并不是真实的物理资源,所以也称为虚拟机VM。

嵌入式系统中的Hypervisor常使用分离内核的架构,这种架构利用现代处理器的硬件特性(如内核态/用户态切换、硬件虚拟化技术)来实现系统隔离。 

Hypervisor会提供严格的隔离环境,确保虚拟机(VM)之间互不干扰,保障安全性和稳定性。对上层软件而言,虚拟机的使用与原来的物理机是一样的。

当某个虚拟机出现故障崩溃时Hypervisor会终止其进程并回收资源,不影响其他虚拟机的正常运行。

隔离的具体实现方式包括:

1CPU隔离:通过虚拟化指令集为每个VM分配独立的虚拟CPU,同时利用调度算法防止资源抢占 

2)内存隔离:采用内存分页和地址空间映射,确保VM仅能访问自身分配的内存区域,防止越界访问。

3I/O设备隔离:通过设备直通或虚拟化为VM分配独占或虚拟化设备,避免冲突。

4)安全隔离:通过硬件辅助技术和Hypervisor层加密实现,防止侧信道攻击和数据泄露。

5实时性隔离:通过时间片轮转或优先级调度,确保高实时性任务(如ADAS)不受低优先级任务干扰。

3.2资源共享

资源共享,也称为超分技术,比如内存超分。

内存超分是指分配给虚拟机的内存总和大于实际可用的物理内存总数。在虚拟化环境中,内存超分允许虚拟机使用更多的内存资源,即使这些资源在物理上并不完全存在。

它的原理是不是所有虚拟机在任何时候都会使用到分配给它们的全部内存。Hypervisor通过跟踪虚拟机的内存使用情况,将物理内存动态地分配给那些实际需要内存的虚拟机,使得多个虚拟机可以共享物理内存资源,从而实现分配给虚拟机的内存总和超过物理内存总量的结果。

超分技术使得宏观上看,多个虚拟机的使用内存大于物理内存,但微观上看,超分是通过时间上的快速调度实现的,实际物理内存大小是不变的。

资源共享的具体的实现方式包括:

1)透明页共享:Hypervisor会检测多个虚拟机中相同的内存页面,只保留一份映射的物理内存页面,供多个虚拟机共享。这样可以减少内存的实际使用量,为更多虚拟机分配内存提供空间。

2)内存压缩:对虚拟机中不经常访问的内存页面进行压缩,将压缩后的页面存储在物理内存中,以节省内存空间。虚拟机需要访问这些页面时,再进行解压缩。

3)交换技术:将虚拟机暂时不用的内存数据交换到磁盘上的交换空间中,当需要时再从磁盘交换回物理内存。通过这种方式,在物理内存不足时,利用磁盘空间来扩展内存容量。

动态内存管理使得主机物理机的内核仅在虚拟机请求时分配内存。主机物理机的内存管理器可以在其自己的物理内存和交换空间之间移动虚拟机的内存。虚拟机可以根据需要获取更多内存,适应不同的工作负载需求。

Hypervisor在隔离基础上实现硬件资源的动态共享,可提升利用率并降低成本,共享资源主要实现方式包括:

1)动态资源分配:根据VM负载动态调整虚拟CPU核心数和内存大小。

2)存储共享:通过虚拟磁盘或共享存储允许多虚拟机访问同一物理存储,支持快照和克隆。

3)网络虚拟化:虚拟交换机可以将物理网卡抽象为多个虚拟网卡,供VM共享带宽。

4GPU共享:通过虚拟化显存或API转发,支持多VM并行图形处理。

4.域控制器与Hypervisor

域控制器的主要特点就是将原来几个独立的ECU,融合成一个DCU,硬件上使用1个主芯片来处理不同的模块功能,这样可以避免为每个功能部署独立ECU,降低硬件成本和功耗。

但是在融合的过程中,可能会出现把性能特点完全不同的两种ECU合并在一起,比如实时性高和实时性低的两个系统、安全性高和安全性低的两个系统。

这时就会出现系统性能需求不兼容,甚至互相排斥的问题,这种情况就需要使用Hypervisor

在汽车域控中,对实时性要求较高,所以常采用1Hypervisor。因为它可以直接管理和分配硬件资源,为虚拟机提供更高效的运行环境,同时也便于进行安全机制的设计和实现,确保系统的稳定运行。

很多功能模块对实时性和安全性要求较高,常采用实时性的隔离方式和时间调度的资源共享方式。通过硬件辅助虚拟化与软件调度策略,在隔离与共享之间实现平衡。

4.1智能座舱域

在智能座舱域中,全液晶仪表、AR-HUDHVAC、环视、倒车影像、DMSCMS等对实时性、安全性和可靠性要求极高的领域,通过最高等级ASIL D功能安全标准的QNX操作系统是首选。

而在对实时性要求更低,但对生态应用要求较高的中控及后排信息娱乐系统领域,Android系统是首选。

智能座舱域需要融合这两种特性完全不同的操作系统,所以必须使用Hypervisor

这两类系统也可以划分为安全相关的系统(如仪表)和非安全相关的系统(中控)两类,主要目标就是要保障安全相关的高优先级任务不被非安全相关的低优先级进程抢占。

通过Hypervisor虚拟化层实现逻辑隔离,结合硬件级的物理资源切割,智能座舱就可以在单芯片上构建既共享又独立的混合运行环境。

图片

座舱域Hypervisor架构图

智能座舱中的分层架构主要包括硬件层、Hypervisor层和虚拟机层。硬件层包括SoC芯片、内存、外设控制器等物理资源;Hypervisor层负责资源分配、虚拟机调度及硬件访问控制;虚拟机层包括行仪表系统如QNX、娱乐系统如AndroidHUDDMS等独立功能域。

目前常用的是QNX Hypervisor,整体架构是主芯片上先运行QNXHypervisor,再上面一层并行运行QNXAndroid

图片

座舱QNX Hypervisor 架构

QNX Hypervisor具有高可靠性、实时性与安全性,能够满足系统响应速度和稳定性的严格要求。它采用微内核架构,通过将不同级别的组件放置在不同的 guest 操作系统中,实现了分离和隔离,支持多种芯片架构,能很好地适配域控制器中常用的硬件平台。并且QNXHypervisor本身也通过了ISO26262 ASIL D功能安全认证。

从隔离角度看,仪表和DMS等功能对实时性和安全性的要求很高,而中控的音视频娱乐系统对实时性要求较低。

Hypervisor 通过硬件虚拟化技术,能够在同一硬件平台上创建多个相互隔离的虚拟环境,将高安全等级的仪表、DMS等功能与低安全等级的信息娱乐功能分隔开来。可以保证仪表和DMS功能的实时性和稳定性。

在资源共享方面,随着汽车智能化程度不断提升,智能座舱中集成的功能越来越多。Hypervisor 能够高效调配 CPU、内存、存储等硬件资源,根据不同任务的优先级和需求动态分配,提高资源利用率。

比如在车辆正常行驶时,可将更多计算资源分配给导航和信息娱乐功能;当检测到车辆故障或驾驶员疲劳时,迅速将资源集中于仪表报警和DMS提醒等功能,实现资源的灵活调度与最优配置。

5.小结

Hypervisor是一种运行在硬件和操作系统之间的中间软件层。它的主要功能是管理操作系统,将底层的硬件资源(如 CPU、内存、存储和网络等)进行抽象和分配,使多个操作系统能够在同一个硬件上隔离运行。

有些域控制器需要运行多个操作系统,通过Hypervisor,就可以在域控制器中实现不同操作系统和不同功能模块的融合与共存,比如座舱域中的QNX+Android。 

来源:汽车电控知识

评论 0
同类信息