欢迎关注下方公众号阿宝1990,本公众号专注于自动驾驶和智能座舱,每天给你一篇汽车干货,我们始于车,但不止于车。
复杂的线束网络:大量ECU间的通信需要依赖复杂的线束,增加了整车重量和布线难度。
系统集成难度大:多个ECU由不同供应商开发,软件和硬件的兼容性问题显著。
维护与升级困难:随着功能需求的增加,系统更新变得昂贵且不灵活。
域集中化架构:多个ECU整合为功能域控制器,例如车身域、动力域和驾驶域,减少了单车ECU的数量。
中央计算平台:进一步整合全车控制功能,将多个域控制器功能集成到一个中央计算单元(CCU)中。
单个ECU需处理多个系统的任务,这些任务通常具有不同的功能安全等级(如ASIL A到ASIL D)。
ECU需要同时支持实时性(如动力总成控制)和非实时性(如娱乐系统)的任务,并确保它们的独立性和可靠性。
硬件性能要求提升:CPU算力、存储容量和通信带宽需满足多任务并行的需求。
软件架构复杂化:需要支持多操作系统共存、多功能模块的隔离与协同运行。
提供多任务隔离能力,保证不同安全等级的任务相互独立。
提高硬件利用率,减少资源浪费,优化成本。
通过模块化设计,简化系统升级与功能扩展。
多任务整合:包括动力总成控制、信息娱乐、ADAS(高级驾驶辅助系统)和远程诊断等功能,这些任务需要协同工作且互不干扰。
功能多样性:不同功能对计算性能、存储容量和通信带宽的要求差异巨大。
资源利用压力:传统硬件平台难以高效分配资源,可能导致性能瓶颈或资源浪费。
安全等级的差异:功能安全(如ASIL-D级刹车控制)与非安全相关任务(如ASIL-A级娱乐系统)需严格隔离,避免因低优先级任务失控影响关键功能。
系统稳定性:在有限硬件资源下,实现多功能共存和任务隔离,以保障系统的稳定运行。
实时性需求:高实时性任务(如动力系统)需快速响应,而非实时性任务(如导航更新)可能占用更多资源,虚拟化技术能通过资源调度平衡两者的需求。
功能模块隔离:虚拟化技术通过资源隔离(如vCPU、内存、存储、网络),将不同功能模块独立部署,防止系统间相互干扰。例如,高安全等级的ADAS任务不会受到信息娱乐系统的意外影响。
提升容错能力:虚拟化能够快速重启特定虚拟机,不影响其他功能模块的运行,提高系统的稳定性和容错性。
支持功能安全等级(ASIL)分级:在同一硬件平台上隔离运行不同的ASIL等级功能,确保关键任务的可靠性。
资源共享:虚拟化技术允许多个功能模块共享硬件资源,避免硬件冗余。例如,多个低负载任务可以在同一虚拟机中运行,从而减少ECU硬件需求。
动态资源分配:通过Hypervisor的动态调度功能,根据实时需求分配计算、存储和通信资源,提高资源利用效率。
模块化开发:虚拟化支持软件模块的并行开发和集成,减少开发时间。
硬件抽象:虚拟化屏蔽底层硬件差异,开发者无需针对每种硬件单独适配,降低开发复杂性。
测试与迭代:开发和测试可以在虚拟环境中完成,减少对实际硬件的依赖,加速软件迭代周期,同时降低测试成本。
安全隔离:通过虚拟化,保证不同功能模块在同一硬件平台上运行时的独立性,避免高安全等级任务(如ADAS)与低安全等级任务(如娱乐系统)之间的相互干扰。
资源共享:在有限的硬件资源下,通过虚拟化提升硬件利用率,优化芯片计算、存储和通信资源的分配效率。
多功能整合:虚拟化允许多个操作系统或应用程序同时运行,支持控制系统、娱乐系统等功能模块的共存。
功能安全等级的分级:通过硬件虚拟化技术,隔离ASIL-D等级任务(如刹车控制)与ASIL-A等级任务(如信息娱乐系统),确保功能安全与可靠性。
实时性与非实时性的并存:在同一硬件平台上运行实时性要求高的任务(如动力控制)与非实时任务(如远程更新),通过虚拟化优化调度和响应。
开发效率提升:利用虚拟化技术,开发者可以在同一硬件平台上测试不同的软件模块,降低开发成本。
维护与升级灵活性:虚拟化提供模块化设计,便于OTA(空中下载)升级功能,实现快速响应与功能扩展。
特点:Hypervisor直接运行在硬件上,管理硬件资源,虚拟化效率高。
优点:性能较高、延迟低,适合要求实时性和高性能的应用场景,如汽车的控制系统。
应用:用于对延迟和性能有严格要求的系统,特别是在复杂的车载功能如ADAS(高级驾驶辅助系统)和动力控制系统中。
实例:KVM、Xen、VMware ESXi等。
特点:Hypervisor运行在已有操作系统之上,依赖宿主操作系统管理硬件资源。
优点:易于实现、成本较低,适合开发和测试环境。
应用:主要用于开发、测试和验证阶段,可以快速部署虚拟化环境进行软件功能验证和调试。
实例:VMware Workstation、Oracle VirtualBox等。
轻量级虚拟化:容器技术通过在共享操作系统内核上运行多个应用实例,避免了传统虚拟化的开销。每个容器拥有自己的文件系统、网络和进程空间,但与宿主操作系统共享内核资源。
高效性:由于共享内核,容器比传统虚拟机占用的资源更少,启动速度也更快。适合用于开发、测试以及需要快速响应的场景,如车载信息娱乐系统中的轻量级应用。
Namespace:通过Namespace,容器可以拥有独立的网络、进程、用户和文件系统视图,实现应用的隔离。例如,网络命名空间(net namespace)允许容器拥有独立的IP地址和网络接口。
Cgroups:Cgroups(Control Groups)则用于限制、计量和隔离容器使用的资源(如CPU、内存、I/O),防止不同容器间的资源争用,确保每个容器的资源使用不超过预定的限制。
vCPU调度隔离:通过调度策略为每个虚拟机(VM)分配独立的虚拟CPU资源,防止任务间的干扰,保证每个功能模块有足够的计算资源。
内存隔离:为每个虚拟机分配独立的内存空间,避免模块之间的数据泄露或冲突,提高系统的安全性。
存储隔离:通过虚拟化存储设备,确保每个虚拟机的存储空间彼此隔离,防止不同模块的数据访问互相干扰。
网络隔离:为不同虚拟机提供独立的虚拟网络接口,通过虚拟交换机进行数据流量的隔离,保障模块间的通信安全。
虚拟I/O(Virtual I/O):虚拟I/O通过虚拟化的硬件接口实现虚拟机间的数据交换。这种方式高效、低延迟,适用于高频次的数据交互需求。
共享内存:通过共享内存区域,虚拟机可以直接访问共享的数据,避免了传统网络传输的开销。这种方法能显著降低延迟,提高数据传输的效率。
TEE:为敏感计算任务提供隔离的执行环境,确保数据处理过程中不会被外部攻击或非法访问。
HSM:通过硬件加密,确保数据存储、密钥管理及数据传输的安全性,防止信息泄露或篡改。
转换后备缓冲区(TLB,Translation Lookaside Buffer):用于存储最近使用的地址转换记录,提高访问效率。
页表查找单元(Table Walk Unit):从内存中读取页表条目(即翻译表)。(页表(Page Table)是内存管理中用于实现虚拟地址到物理地址映射的一种数据结构。它是操作系统和硬件(通常由MMU管理)共同维护的关键机制。)
缺乏内存管理单元(MMU)会使得在硬件级别进行完整的内存隔离变得困难,因为MMU负责虚拟内存的管理和物理内存的访问控制。没有MMU,操作系统和虚拟化管理程序难以确保内存访问的安全性和独立性,增加了数据泄露和越权访问的风险。
虽然没有MMU的芯片无法实现传统的内存隔离,但通过分段机制或软件模拟,可以部分实现内存的隔离。这些替代方案依赖软件层的控制来模拟内存保护,虽然性能和安全性相比MMU有所下降,但在低成本、低功耗的系统中,这种方法仍然有一定的应用空间,尤其在对实时性要求不高的场景下。
硬件层(Hardware Layer):包括CPU、加速器、存储和硬件隔离机制。
虚拟化层(Virtualization Layer):包括微型Micro和类型1(Type-1)Hypervisor。
运行环境层(Execution Environment Layer):各类运行环境(vECU)基于不同需求运行。
系统管理层(System Management Layer):提供整体安全性和功能管理。
多核处理器
Cortex-R 系列:通常为实时处理优化,配备 MPU(Memory Protection Unit),但无 MMU(Memory Management Unit),适合严格时间控制的实时任务。
Cortex-A 系列:用于高性能的应用处理,配备 MMU,支持复杂的内存虚拟化功能。
硬件分离层(HW Separation Layer, XRDC)
XRDC(eXtensible Resource Domain Controller)提供硬件级别的资源隔离功能,将硬件资源(如存储、外设)分配到不同的虚拟环境中,确保相互隔离。
支持虚拟化感知(Virtualization-aware)硬件加速器,使不同任务运行时能充分利用硬件性能。
Micro Hypervisor(微型虚拟化管理器)
用于实时计算环境(Cortex-R)。此层提供轻量级虚拟化服务,通过MPU实现内存隔离和任务分离。
适用于多任务并行运行,但不会引入虚拟地址空间,因此更加确定性。
Type-1 Hypervisor
用于高性能计算环境(Cortex-A)。该类型的Hypervisor运行在硬件之上,提供更强的虚拟化能力,例如支持复杂的虚拟机管理和虚拟内存。
配合MMU实现完全的内存虚拟化和进程隔离。
每个虚拟环境(vECU,Virtual ECU)是一个隔离的功能单元,运行不同的操作系统或无操作系统的裸机程序:
RTOS 1 / RTOS 2:实时操作系统(如FreeRTOS),用于处理关键实时任务。
Bare-Metal:无操作系统,直接运行应用代码,通常用于简单控制功能。
Rich-OS 1 / Rich-OS 2:高性能操作系统(如Linux、QNX),支持复杂任务,如高级驾驶辅助系统(ADAS)或车载信息娱乐系统(IVI)。
安全管理器(Security Manager):负责系统的整体安全性管理,例如防止未经授权的访问。
安全性和功能管理:
包括与ISO 26262等功能安全标准相关的功能,确保关键系统在硬件或软件发生故障时的可靠性。
RTOS管理:作为基础管理系统,协调不同虚拟环境间的通信和任务分配。
关键性划分:
不同关键性应用(实时与非实时、高安全性与低安全性)通过硬件隔离和虚拟化技术共存,减少对独立硬件的需求,从而降低系统成本。
性能与确定性:
Cortex-R结合MPU用于实时任务,避免使用MMU和缓存引入的不确定性。
Cortex-A结合MMU支持复杂功能,满足高性能计算需求。
可扩展性和资源利用:
硬件加速器和虚拟化感知功能的支持使得不同任务可以高效地共享系统资源。
典型应用场景:
ADAS:运行在高性能Cortex-A平台,支持丰富功能和复杂算法。
动力总成控制:运行在实时Cortex-R平台,要求严格的时间响应。
MPU(内存保护单元):
硬件分区与隔离(如XRDC):
图中通过MMU、MPU和XRDC的结合,构建了分层隔离的虚拟化架构,满足了从实时任务到复杂应用的多样需求。
虚拟化核心在于资源隔离与共享,MMU在现代虚拟化环境中不可或缺,但在实时性优先的场景下,可用MPU配合硬件分区技术替代部分功能。
异构计算架构下,分工明确(如实时处理与应用处理分离),进一步优化了性能与安全性。
优化后的虚拟化架构:使用Micro Hypervisor和Type 1 Hypervisor,根据任务类型选择最合适的虚拟化方式。
专用硬件加速:借助XRDC和虚拟化感知硬件,实现硬件级别的资源隔离和任务加速。
简化虚拟化策略:利用异构多核划分任务,降低通用虚拟化框架的复杂性和开销。
其主要目标包括:
提高开发效率:支持从早期算法设计到硬件验证的完整流程。
降低成本:减少对物理硬件的依赖。
支持自动化测试:通过集成 CI/CD 流程,优化测试工作流。
逐步演进:从模型到虚拟硬件再到物理硬件的完整支持。
全生命周期支持:覆盖 MIL、SIL、HIL 阶段。
开发成本节省:减少对硬件资源的早期依赖。
加速产品上市:通过高效仿真加快验证流程。
复杂性管理:支持多模块集成和协同工作。
提升产品可靠性:广泛场景模拟测试。
多层次建模:支持从单一部件到整车系统的多层次孪生建模,包括物理、电子和软件行为建模。
实时仿真:提供高性能仿真能力,实时验证和调优系统性能。
闭环开发:将设计、测试和实际运行数据闭环整合,持续改进开发流程。
数据驱动决策:利用大数据分析与机器学习技术,优化系统性能和开发效率。
缩短开发周期:通过高精度建模和虚拟测试,减少物理原型的需求,显著加速研发进程。
成本优化:降低硬件测试需求,避免因硬件损坏或错误设计导致的高昂成本。
高可靠性保障:在虚拟环境中实现全面的极端场景测试,提升产品的安全性和稳定性。
模块化架构:支持灵活构建虚拟ECU模块,满足不同开发需求。
多接口兼容性:兼容多种通讯协议(如CAN、Ethernet)和嵌入式操作系统(如AUTOSAR)。
与硬件解耦:通过完全虚拟化的测试环境,无需依赖实际硬件设备。
自动化支持:提供与CI/CD工具链的集成能力,实现自动化的构建和测试流程。
提升开发灵活性:开发团队可以独立于硬件设备的可用性进行功能开发和测试。
实时验证复杂系统:通过支持 SIL 和 HIL 仿真方法,早期发现和解决潜在问题。
高效故障定位:利用详细的日志和虚拟调试工具快速定位系统缺陷。
VCML 核心模块:提供基础的组件建模库,用于创建虚拟硬件和软件环境。
扩展工具链:集成调试、性能分析和日志工具,全面支持虚拟系统的开发与验证。
虚拟网络支持:模拟汽车内部和外部通信网络,测试网络协议和通信性能。
硬件抽象层:虚拟化处理器、存储器和其他硬件资源,支持多种硬件架构。
建模层:通过模型化方法构建虚拟组件,支持可定制的硬件和软件功能模拟。
仿真层:基于高性能仿真引擎,提供实时和非实时仿真支持。
调试与优化层:集成多种调试工具,实现从单一组件到系统级的故障分析和性能优化。
接口集成层:支持与第三方工具和开发环境的接口,增强系统兼容性。
高扩展性:支持多种硬件和软件环境,可满足复杂系统需求。
全面的测试覆盖:从单一组件到复杂系统的功能和性能测试,确保系统质量。
开发流程优化:通过与 DevOps 工具链的深度集成,提升协作效率和自动化水平。
特点
功能准确:Arm Fast Models 与 Arm IP 一起开发和测试,为软件开发提供高度准确且经过验证的虚拟原型。这些模型尤其适合底层软件开发,例如操作系统内核和设备驱动程序开发。
完整且可扩展:Arm Fast Models 支持 Arm IP 的详细实现,包括协处理器寄存器、异常级别、转换表和缓存。同时,其 SystemC 接口允许与第三方模型无缝集成,从而实现虚拟 SoC(片上系统)原型的构建和扩展。
可调试:Arm Fast Models 提供强大的调试接口,与许多调试工具兼容,支持虚拟与实际硬件目标之间的一致调试体验,无需更改现有调试工具配置。
自动化支持:提供脚本接口,便于实现自动化操作,是持续集成(CI)和持续验证(CD)的理想选择。与硬件原型相比,虚拟原型更易于扩展和维护。
技术优势
提升开发效率:开发团队能够在硬件不可用的情况下完成底层软件的开发和测试,加速产品研发进程。
验证复杂功能:支持快速验证复杂架构设计和功能,通过虚拟化平台,早期发现潜在问题,避免后续昂贵的硬件迭代。
增强调试能力:借助日志和调试工具,快速定位软件缺陷和系统瓶颈,减少问题解决时间。
降低开发成本:使用虚拟原型取代部分硬件原型需求,显著减少硬件成本和资源消耗,并提供更高的灵活性和可维护性。
此方案通过提供全面的虚拟化工具和接口,助力开发团队高效构建、验证和优化复杂的软硬件系统。
通过逐步从虚拟化模型走向物理硬件,汽车数字孪生技术有效地支持了 ECU 开发的各个阶段。Synopsys 等领先技术提供商,通过集成多种开发工具,帮助企业:
管理复杂性:优化 ECU 集成开发。
提升效率:缩短开发周期。
增强可靠性:保障最终产品的稳定性和安全性。
这种基于数字孪生的 vECU 开发方法已成为现代汽车电子开发的关键支柱。
虚拟化技术在汽车行业中推动了多功能集成、安全隔离与高效计算的统一。通过虚拟化,汽车ECU能够支持多种复杂功能同时运行,并确保不同安全等级的功能模块能够独立、安全地操作。此外,虚拟化为汽车架构提供了灵活的适配能力,使得开发者可以根据不同硬件平台的性能和需求,快速部署和调整系统架构。
随着汽车软件定义的趋势不断加速,虚拟化技术将在未来的中央计算平台和域控制器中扮演越来越重要的角色。更高效的硬件虚拟化支持将成为提升系统性能和安全性的关键,同时能够满足日益复杂的功能要求。
Dense Virtualization via Linux Containers – TheTechSolo
Understanding Full Virtualization, Paravirtualization, and Hardware Assist | by Mohit Sharma | Medium
All About Hypervisors: ESXi vs Hyper-V, XenServer, Proxmox, KVM, & AHV
Robert Bosch GmbH - Virtual validation of ECU networks - Fraunhofer IESE
TEE Vs. Integrated HSMs For Enhanced Security Trustonic
What is a virtual CPU (vCPU)? | Definition from TechTarget
Enable Nested Virtualization Windows Server with Hyper-V
What Is Nested Virtualization in Hyper-V?
How to Use VMware Nested Virtualization
Application Memory Isolation on Ultra-Low-Power MCUs | USENIX
How is Virtual Memory Translated to Physical Memory? - VMware vSphere Blog
IoMmu Model - Windows drivers | Microsoft Learn
Understanding x86 Virtualization | Mixster
Embedded Systems: which one is better ,a CPU with or without MMU (Memory Management Unit) | by Wassim Dhokar | Medium
Deep Dive: MMU Virtualization with Xen on ARM — Star Lab Software
Embedded Systems: which one is better ,a CPU with or without MMU (Memory Management Unit) | by Wassim Dhokar | Medium
TEE Vs. Integrated HSMs For Enhanced Security Trustonic
Understanding Full Virtualization, Paravirtualization, and Hardware Assist | by Mohit Sharma | Medium