目前正在生产的汽车是复杂功能的混合体,只有依赖越来越多的ECU才能实现这些功能。因此,按照之前的趋势,ECU的数量或越来越多,而且ECU之间的通信会越来越复杂,这种方式显然难以为继。
大多数OEM已经在研究下一代E/E架构。ECU融合、域控制器(DomainControl)、车载电脑(HPC)都是下一代E/E架构的热门词汇。所有这些都要求电子系统制造商,包括Tier-1和半导体供应商提供安全、可靠、优化解决方案的硬件和软件。
应用独占转向共享
首先我们必须意识到,前几代嵌入式处理器,比如今天在ECU中大量使用的处理器TC275、S32K、RH850等,最初是为执行单一软件应用而设计的,比如发动机控制、变速箱控制、刹车控制等。这些处理器支持嵌入式操作系统(AUTOSAR OS),用户可以在之上开发应用软件功能。应用软件的功能动划分为不同的任务,然后由操作系统来调度执行。操作系统通常运行在处理器的特权模式下,使其能够根据需要启动和停止任务。这种既定的模式对基于单一操作系统的硬件一直行之有效。(特权模式,即Supervisor模式,在该模式下可访问处理器内核、外设、中断、异常等所有寄存器和内存资源。相对应的是User模式,只能访问特定的内存资源,其他的想都甭想了。说白了,处理器也是个社会。)
然而,在未来的车辆架构中,几个应用程序将同时运行在同一硬件平台上,并有可能同时运行一个以上的操作系统。现在,特权模式突然变成了非常具有限制性,因为两个操作系统可能无法就执行的任务达成一致(现在有两个领导了,要分蛋糕了,谁也不服谁啊,所以不好办了)。此外,共存的应用程序还必须确保它们自己的私有资源(如内存和外设)不会相互干扰(如图1)。
图1. 插电式混合动力汽车(PHEV)的可能整合方案
虚拟机
这个问题的解决方案在计算机科学中早已为人所知。应用程序必须被隔离开来,以便它们可以各自在自己的专用虚拟机(VM)中运行。虚拟机是基于计算机的运行方式,就像它是一个不同种类的计算机一样,例如在PC上运行Linux或在Mac上运行视频游戏模拟器。虽然在桌面和其他IT场景中被广泛了解和使用,但虚拟机还没有在汽车中使用的嵌入式微处理器中广泛实现。一个利用其特权来协调任务的操作系统也被开发者称为Supervisor,而他们将非特权任务称为User软件。因此,使用超级权限级别的新软件系统也被称为Hypervisor,因为它的权限比Supervisor的权限级别更高。
Hypervisor的角色
Hypervisor的主要作用是通过限制或分配访问片上资源(如CPU、内存和外围模块)来定义每个虚拟机的可用功能。Hypervisor可以通过为每个虚拟机分配不同的资源份额来创建多个虚拟机。例如,它可以将CPU上的处理时间划分为时间片,并根据需要将其分配给不同的虚拟机。而且,一个虚拟机可以同时和另一个虚拟机共享一个CPU或独占多个CPU。同样,内存和外围模块可以共享或分配给单个虚拟机。同时,虚拟机需要和其他虚拟机彼此知之甚少或一无所知,并且不能访问Hypervisor未分配给它们的资源。由于这个原因,Hypervisor也有被称为VMM(VirtualMachine Monitor)。
Hypervisor利用保护机制和资源控制器,协调对内存和片上外围模块的访问。它还使用特定外围模块的部分功能。Hypervisor通常在相应的定时器的帮助下管理CPU时间的共享,该定时器告诉何时需要将CPU切换到另一个虚拟机上。
在实时应用处理器中,内存保护单元(MPU,Memory Protection Unit别想多了,不是现在热门的那个MPU微处理器)在CPU内提供必要的保护机制。通常情况下,操作系统使用MPU来释放或分配内存以运行用户任务。一个具有Supervisor权限的软件可以拥有自己的私有或共享区域,也可以根据特定的应用配置MPU。在ARMCortex-R52架构中,Hypervisor有一个额外的独立MPU,即EL2级别的MPU,具有更高的优先级,在这个更高的权限级别,每个虚拟机可用的总内存被分配。
效率的提升
必须尽量减少用于执行Hypervisor本身的处理器资源。这可以通过“资源控制器”来实现,该控制器实现了跨越整个芯片的保护机制,并对某些重要的外围模块进行细分,以便进一步分配。重要的是,这种分区完全在硬件中实现,并且也涵盖了CPU的功能。当系统即包括那些需要高度安全的应用,以及安全等级较低的应用时,情况尤其如此。
资源控制器将内存保护机制扩展到系统中的其他总线主控节点,如DMA或以太网,并增强了内核的可用内存和外围保护功能。通过这种方式,有可能在多个核上运行一个虚拟机。例如,可以为一个虚拟机分配相当于1.5个内核的处理能力,为另一个虚拟机分配2.5个内核,硬件完全支持这种分配(图2)。
图2. 一个具有四个内核的SoC在Hypervisor下运行两个虚拟机的例子
复杂性带来安全挑战
通过硬件的特定措施将多个应用程序整合到多核系统中,也增加了黑客攻击系统安全的可能性。攻击面的增加是由于该系统对来自多个来源的应用程序开放,并且新的Hypervisor配备了极高的访问权限。其中一个应用程序,特别是Hypervisor中的漏洞,可以让攻击者不仅破坏甚至接管目标应用程序,而且还可以接管整个系统。如果ECU包含一个可能危及车辆功能安全的应用,这一点尤其值得关注。安全问题可以通过多层次的方法得到最好的控制。对于ECU来说,可以通过硬件和软件的结合来实现。在启动时,ECU的代码必须经过安全认证,而且加载速度要快。在这种情况下,需要对复杂的加密算法提供硬件支持。为了满足这一要求,可以对程序代码和用户的数据进行加密,并利用相应的硬件加速(HSM)来及时解密。此外,至关重要的是,安全硬件及其密钥要受到保护,以免被正在运行的应用程序或硬件算法(如旁路攻击)所破坏(图3)。
图3. 安全运行是车辆系统安全概念中的一个要素(这个图很重要,Security在系统中要考虑的问题基本都包含了)
高性能MCU处理器平台
NXP的S32S处理器提供了一个安全而强大的平台,为Hypervisor用户提供广泛的硬件支持,并具有灵活的安全功能。为了帮助用户更快地将强大的解决方案推向市场,恩智浦已与软件供应商Open Synergy合作,将其专业知识用于开发S32S处理器系列的Hypervisor软件。COQOS Micro-Hypervisor使用S32S247处理器的功能来实现独立的虚拟机,这些虚拟机的运行达到ASIL-D安全等级(图4)。除此之外,ST的Stellar系列与NXP的S32S一样,采用ARM-Cortex-R52系列内核,支持硬件Hypervisor(图5)。以上两家都属于ARM-Cortex-R52阵营。而Infineon同样不甘落后,继续强化Tricore架构,支持基于Hypervisor的虚拟化应用(图6)。
图4. 带硬件Hypervisor以及安全引擎的S32S24处理器
图5. ST采用ARM-Cortex-R52的Stellar系列处理器
图6. Infineon的TC4系列处理器,支持虚拟化
本文部分图文引用自《汽车电子》