汽车电子与软件

文章数:1511 被阅读:4580472

账号入驻

汽车高性能MCU的Hypervisor

最新更新时间:2021-07-04
    阅读数:


目前正在生产的汽车是复杂功能的混合体,只有依赖越来越多的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 系列处理器,支持虚拟化


本文部分图文引用自《汽车电子



END
投稿合作:18918250345(微信)

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: TI培训

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved