英飞凌AURIX™ TC4x 微控制器首次引入了虚拟化技术,帮助客户重新构建整车EE架构,最大化利用MCU的硬件资源,其资源隔离的特性还可以降低软件开发和集成的难度,更好地满足功能安全和信息安全的要求。
本文主要介绍了虚拟化技术的背景,虚拟化系统的组成和分类,嵌入式虚拟化的优点,在汽车领域的使用案例以及面临的挑战。
1、虚拟化技术的背景
1.1、虚拟化技术的发展历史
1955年,Fortran语言之父John Backus首次提出了分时(Time-Sharing)技术,通过该技术,昂贵的大型机可以被多个用户同时使用,这被公认为最早的虚拟化技术的概念[1]。1972年,IBM公司研发出了VM/370虚拟机操作系统,真正实现了虚拟化技术的商业落地。1974年,Gerald J. Popek和Robert P. Goldberg系统阐述了实现计算机虚拟化所需要满足的特性,以及虚拟机和虚拟机监控器的概念,这些概念一直沿用至今[2]。如今的虚拟化技术已经从PC端发展到嵌入式系统领域。
1.2、嵌入式虚拟化的发展
嵌入式虚拟化的兴起首先得益于半导体技术的飞速发展,以英飞凌的TriCore™品牌为例(图1),经过多年的发展,TriCore™的内核架构不断升级,主频持续攀升,最新的下一代AURIX™ TC4x首次引入了虚拟化技术,让嵌入式MCU从硬件上支持虚拟化成为现实。
图1 TriCore™ MCU发展历史
其次,在汽车领域,软件定义汽车日渐盛行,MCU的软件架构也从单核到多核,再到多核的虚拟化逐渐演变[3],如图2所示。
图2 MCU软件架构的演变
最后,从客户角度出发,出于节约成本,系统整合,功能安全,信息安全以及配置灵活性等多维度考量,嵌入式虚拟化也是其中的关键突破口(图3)。
图3 嵌入式虚拟化的关键特性
2、虚拟化系统概述
2.1、虚拟环境的组成
典型的虚拟环境由三部分组成:硬件,虚拟机以及虚拟机监控器(图4)。
图4 虚拟环境的组成
硬件,可以是任意支持虚拟化技术的处理器,如英飞凌的下一代高性能MCU,AURIX™ TC4x。
虚拟机(VM,Virtual Machine),是执行不同虚拟化应用程序的容器。通过虚拟化技术,将物理计算机系统按照CPU,Memory,外设,中断等维度进行虚拟分配,形成所谓的虚拟计算机。
虚拟机监控器(VMM,Virtual Machine Monitor),又称Hypervisor(以下均简称Hypervisor),它是横跨在虚拟机和硬件之间的一个软件层,其主要作用是协调不同虚拟机的运行,确保它们之间互不干扰。
2.2、虚拟化系统的分类
根据Hypervisor在整个虚拟化系统中实现位置的不同,可以将Hypervisor分成两种类型[1](图5):
Type1 Hypervisor:Hypervisor直接跑在硬件的裸板上,并运行在最高特权级,而所有的虚拟机运行在较低的特权级。Hypervisor直接负责其上各个虚拟机的资源分配以及运行时的调度策略。
Type2 Hypervisor:Hypervisor作为一个应用程序跑在主机的OS上,与其他应用程序没有本质区别。Hypervisor需要与主机上的OS协商资源分配。
图5 Hypervisor的类型
两种Hypervisor相比,Type1的Hypervisor因为直接访问底层的硬件资源,在使用效率和性能上更好,一般适用于嵌入式系统。而Type2的Hypervisor因为运行在操作系统之上,即使非技术型用户也可以很好地操作Hypervisor,一般用于桌面系统,比如个人电脑等等。
3、嵌入式虚拟化的优点
在汽车电子应用领域,嵌入式虚拟化有如下几个方面的优点:
有利于系统整合
从系统架构层面来看,整车的EE架构已经从传统的分布式系统向集中式架构转变(图6)。
图6 整车EE架构的变革
以域控制器架构为例,以太网作为主干网络连接各个域控制器,在它们下面挂着不同功能模块的小型ECU[4]。引入虚拟化技术之后,可以将其中部分小型ECU以虚拟机的形式移植到域控制器里面,最大化地使用域控MCU的硬件资源,从而减少ECU的数量[5],降低系统的BOM成本。图7是一个简单的例子说明这个概念。
图7 虚拟化技术有助于域控制器融合
从软件开发的角度来看,引入虚拟化之后,Hypervisor将硬件资源分配给不同的虚拟机,虚拟机跟应用程序之间有一定的映射关系。各个软件开发团队根据Hypervisor分配的硬件资源和调度策略去执行自己的应用程序开发,然后做软件集成(图8)。由于各个虚拟机可以独享自己的硬件资源,彼此之间互不干扰,各个虚拟机甚至可以使用不同的AUTOSAR软件,不同的操作系统,不同的开发工具。这样就解决了不同开发团队或者不同供应商的程序在同一个硬件系统中运行,系统集成难度大的问题。
图8 虚拟化方案软件开发流程
有利于功能安全和信息安全的部署
虚拟化技术的一个显著特定就是隔离,Hypervisor为不同的虚拟机分配硬件资源,如CPU,内存,外设以及中断。以AURIX™ TC4x为例,用户可以对每一个虚拟机分配特定的内存和外设,以及它们的访问权限,中断也可以给到指定的虚拟机去响应。这样原本在不同ECU层面的功能安全和信息安全目标,现在在不同虚拟机之间就能够实现(图9)。
图9 虚拟机隔离示意图
增强了系统集成的灵活性
每一个虚拟机可以做到独立的启动和停止,以及独立的去编程和烧录,这大大增强了系统的可扩展性和集成的灵活性。
4、汽车嵌入式虚拟化的使用案例
这里简单介绍两个嵌入式虚拟化在汽车电子领域的使用案例。
案例一:新能源多合一
图10 新能源多合一系统示意图
新能源多合一技术是当前新能源汽车的研究热点。图10是双电机和DCDC功能融合的案例,CPU0运行MCAL和通信协议栈,CPU1运行Inverter A的应用,CPU2运行Inverter B和DCDC的应用,每一个应用里面可以有一个或者多个虚拟机,不同的虚拟机通过Hypervisor实现它们的调度。这样可以最大化地利用MCU的硬件资源,减少ECU数量,降低系统的BOM成本。此外,Inverter应用和DCDC应用的开发可能来自不同的软件团队,即使他们的开发环境(操作系统,编译器,调试器)不同,由于应用跑在不同的虚拟机里面,彼此之间互不干扰,从而降低了开发和集成的难度。
案例二:充电桩V2G技术
图11 使用虚拟化对V2G相关应用进行隔离
V2G技术被认为是电动汽车和电网进行双向能量和信息交互的理想范式。但是近年来黑客攻击充电桩的事件时有发生。为了防止黑客在用户充电过程中对汽车的入侵,我们可以在控制器端采取防御措施。比如,将与充电桩通信相关的应用放到一个特定的虚拟机里面[6],该虚拟机对其他硬件资源的访问进行严格的管控,从而达到虚拟防火墙的作用(图11)。
5、汽车嵌入式虚拟化的挑战
当然,嵌入式虚拟化也面临着诸多挑战[7],总结为如下几点:
• 实时性
虽然嵌入式系统都是Type1的Hypervisor,但是Hypervisor作为中间的调度软件,本身也会消耗时间片,系统越复杂,调度策略也会越复杂,Hypervisor本身的时间开销也会越大,从而影响系统的整体实时性。
• 故障处理的复杂性
引入了虚拟化之后,多个应用集成在一个MCU控制器当中,如果某一个虚拟机出现系统失效,我们需要尽可能的保证该虚拟机的故障处理不影响到其他虚拟机的正常运行,尽量避免单个虚拟机失效影响整个系统的情况发生,这对故障处理功能带来了挑战。
• 通用功能的系统整合
对于多应用融合的方案,在引入虚拟化之后,一些通用的系统功能,如休眠唤醒功能,如何整合所有应用去做最终的方案策略,值得客户深思;再比如,AUTOSAR的基础软件,是共用一套BSW软件,还是每个应用都有自己的BSW软件,也是一个值得商榷的问题。
• 软件生态
当前,嵌入式虚拟化的软件大都是非开源的商业软件,且软件本身没有类似AUTOSAR这样的标准接口规范,软件公司根据不同芯片厂商的硬件支持情况各自制定自己的解决方案。
6、总结
总的来说,虚拟化技术最早在计算机端兴起,而嵌入式系统的虚拟化正在成为一种趋势。用户可以根据自身需求将MCU的硬件资源灵活地拆分成多个虚拟机,不同的应用跑不同的虚拟机,Hypervisor负责管理各个虚拟机的启动,运行以及停止,最大限度地利用MCU的资源。虚拟化的隔离特性有助于客户的软件开发和集成,满足功能安全和信息安全的要求。英飞凌最新一代AURIX™ TC4x将从硬件上支持虚拟化技术,助力整车的E/E架构设计,开发和集成。
参考文献
[2] SANTIAGO LOZANO, TAMARA LUGO, JESÚS CARRETERO. A Comprehensive Survey on the Use of Hypervisors in Safety-Critical Systems [J]. IEEE, VOLUME 11, 2023, 36244-36263.
[3] Gernot Heiser, Open Kernel Labs, Inc. TECHNOLOGY WHITE PAPER-Virtualization for Embedded Systems[R/OL]. April 2008. https://www.researchgate.net/publication/234804454.
[4] Dominik Reinhardt, Daniel Adam, et al. Embedded Virtualization Approaches for Ensuring Safety and Security within E/E Automotive Systems[J]. Engineering, Computer Science, 2015.
[5] Alexandra Aguiar, Fabiano Hessel. Embedded Systems’ Virtualization: The Next Challenge? [J]. IEEE International Symposium on Rapid System Prototyping, 2010
[6] Stefaan Sonck Thiebaut, Antonio De Rosa, et al. Secure Embedded Hypervisor based Systems for Automotive[C]. 2016 46th Annual IEEE/IFIP International Conference on Dependable Systems and Networks Workshops.
[7] 王洪波. 嵌入式虚拟化技术与应用[M]. 北京:机械工业出版社,2023.8.
来源:英飞凌汽车电子生态圈
免责声明:本文为转载文章,转载此文目的在于传递更多信息,版权归原作者所有。本文所用视频、图片、文字如涉及作品版权问题,请联系小编进行处理(联系邮箱:cathy@eetrend.com)。