微控制器的虚拟化
Posted IAB研究
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微控制器的虚拟化相关的知识,希望对你有一定的参考价值。
嵌入式虚拟化是汽车未来的关键技术。虚拟化使得可以将处理器的资源分配给多个纯粹分离的应用程序和操作系统。这是重新设计车辆电子架构的有效方法,充分利用处理器的性能并解决日益复杂的软件定义功能。
也可以在其他车辆领域中使用实时处理器和微控制器。新的虚拟机管理程序平台为下一代日益自动化的汽车开辟了机会。
新的汽车体系
车辆需要不断提高处理能力,提供有关车辆的信息,协助驾驶员,使车辆更安全并管理能源。 ECU的设计易于集成到汽车电子市场中,ECU的设计易于安装和维护。
图。 1:多个虚拟机可以运行不同的系统 AUTOSAR实现甚至是非AUTOSAR兼容的软件。
汽车中的各种功能对底层软件和硬件平台有着非常不同的要求。软件应用程序不仅需要通用处理能力,还可以生成高分辨率图形,处理相机图像或雷达数据,并运行人工智能算法,如深度学习。此外,车辆功能对功能安全性(从ISO26262“QM”到“ASIL-D”),启动时间和实时行为有不同的要求。
因此,车辆电子架构将由多种处理器内核和硬件加速器构建。应用处理器(如基于ARM Cortex-A系列或Intel x86架构的内核)旨在运行大型操作系统和框架(包括Linux,android或自适应AUTOSAR)。微控制器和实时处理器基于ARM Cortex-M或Cortex-R系列,瑞萨RH850,Infineon Tricore等设计用于运行实时应用,处理高中断负载,极快启动或实现非常高的可靠性,支持使用大型应用程序处理器难以实现的ASIL级别。它们通常用于运行经典的基于AUTOSAR的系统或专用的实时操作系统。
许多车辆功能将在几种不同类型的处理器和加速器上分配它们所包含的软件模块。 ADAS算法将在硬件加速器支持的应用处理器上进行图像处理,但可能使用第二个微控制器来监督执行并确保实现安全目标。在某些情况下,配套微控制器可能位于单独的硬件设备上,在某些情况下,它集成在同一SoC(片上系统)上。
硬件行业提供针对特定域控制器的片上系统组合处理核心和加速器。设计用于信息娱乐或连接的许多SoC将多核应用处理器(通常基于ARM Cortex-A)与功能强大的GPU(图形处理单元)和微控制器(例如基于ARM Cortex-M或Cortex-R)相结合安全功能或经典AUTOSAR。同样,针对运行许多驱动程序辅助系统的域控制器的新SoC集成了应用程序处理器,实时处理器,微控制器和专用加速器。
应用程序处理器的虚拟化
嵌入式虚拟化是一种技术,可以将处理器的资源划分为安全分离的“虚拟机”(VM)。每个VM都可以运行自己的操作系统(称为“客户操作系统”),框架和应用程序。 “Hypervisor”是管理隔离(“免受干扰”)和VM之间受控通信的软件。应用程序处理器ARMv8-A体系结构具有内置扩展,可确保Hypervisor可以非常有效地运行,并且对客户操作系统非常透明:处理器体系结构具有管理程序的额外执行级别,在其中添加了“2阶段转换” MMU(内存管理单元)和中断处理程序中的其他工具。
英特尔x86架构具有类似的扩展。此外,许多SoC供应商已经选择了GPU或添加了系统级组件,以促进片上设备的虚拟化。
图2:驾驶舱控制器是驱动许多显示器的域控制器 在汽车中使用数字仪表盘统一信息娱乐功能。
这项技术今天已经投入使用。一个突出的例子是所谓的“驾驶舱控制器”,它是一个域控制器,驱动汽车中的许多显示器并统一信息娱乐功能与数字仪表盘。在这种情况下,管理程序可以在一个SoC上运行不同的软件框架(例如,用于信息娱乐的Android,用于仪表盘的Linux,以及用于安全关键功能的单独的OS)。驾驶舱控制器提供更加集成的用户体验,与多ECU方法相比更便宜,更灵活。
微控制器上的虚拟化?
在信息娱乐等领域中对应用处理器进行虚拟化的需求是由于(1)需要在单个处理器上模块化地集成具有非常不同要求的应用程序,以及(2)具有计算功能的新一代处理器使用虚拟机管理程序在单个处理器上虚拟化运行这些应用程序的电源和硬件扩展。
现在,其他车辆领域也在发生同样的事情,更多地依赖于微控制器和实时处理器。
在微控制器或实时处理器上运行的域控制器需要集成越来越多的软件。该软件通常根据不同的功能安全级别开发或来自不同的供应商,因此必须保证免受干扰。此外,随着软件数量的增加,模块化必须在设备生产后从开发过程扩展到软件更新:必须能够更新一个软件功能而不会有影响他人的风险或完全重新认证的需要整个设备。
可以在身体领域找到一个具体的例子。这样的域控制器将在单个微控制器上运行对安全至关重要的功能(例如整个车身域的电源管理),安全关键(例如解锁汽车)和既不是功能(例如内部)灯光)。理想情况下,这些功能可以独立开发并轻松集成。应该可以在不影响安全相关功能(例如管理电源)的情况下对非关键功能(例如室内照明)进行软件更新。
在某种程度上,经典的AUTOSAR已经提供了这种分离,甚至支持几个ASIL级别,而不需要管理程序。 AUTOSAR在操作系统级别提供分离,应用程序由各个软件组件组成。然而,在复杂的软件系统中,AUTOSAR的配置变得极其复杂,因为操作系统的行为和基本软件中的服务需要集中定义,这打破了模块化。 AUTOSAR还要求所有应用程序遵循AUTOSAR标准,甚至是相同的版本。最后,AUTOSAR开发过程的结果是一个单片系统,不允许模块化软件更新。
虚拟机管理程序增加了额外的解耦程度,支持开发,配置,集成和软件更新中的关键第一级分离。在一个虚拟机中,在许多情况下将使用基于AUTOSAR的系统(提供第二级分离)。多个虚拟机可以使用不同的AUTOSAR实现运行不同的系统,甚至可以运行非AUTOSAR兼容的软件。
除了现有技术(如经典AUTOSAR标准)无法解决的这些新要求之外,新一代微控制器和实时处理器还具有内置扩展,使运行管理程序非常高效。多年来,应用处理器中可用的硬件扩展现在出现在微控制器和集成它们的SoC中。一个很好的例子是ARMv8-R架构,它为“R”(实时)系列增加了虚拟化扩展,例如由管理程序控制的第二个MPU(存储器保护单元)。该架构用于ARM®Cortex®-R52内核,已被新控制器(如NXP S32S)采用。
几年来,OpenSynergy一直在为微控制器开发一种Hypervisor变体。该产品名为COQOS Micro SDK。它是第一个利用ARMv8-R架构中的虚拟化扩展的虚拟机管理程序,并将支持基于该架构构建的下一代微控制器。
虚拟化如何在MCU上运行?
COQOS Micro SDK的核心组件是虚拟机管理程序。管理程序的主要目标是确保免受干扰(由ISO 26262规定),直至虚拟机之间的最高级别ASIL-D。这需要虚拟机的时间和空间分离。
管理程序通过使用专用的内存保护单元(MPU)确保虚拟机之间的空间隔离。管理程序负责将独占内存区域分配给虚拟机,并使虚拟机能够访问外围设备。当硬件包括两个MPU(每个核心)时,在虚拟机内运行的实时操作系统可以使用第一级MPU在虚拟机内进行保护。为了确保完全分离,还必须保护存储器空间免受除处理器(非核心总线主控器)之外的总线主控器的干扰,例如直接存储器存取(DMA)控制器。为此,大多数SoC制造商提供他们自己的限制可访问存储器区域的自定义方法。
如果多个虚拟机共享一个物理核心,则虚拟机管理程序使用实时调度策略在虚拟机之间切换。虚拟机在物理核心上的CPU时间视图由虚拟CPU(vCPU)提供。 vCPU由在虚拟机中运行的实时操作系统用于计划任务。因此,实现了2级调度机制。管理程序确保每个虚拟机获得配置的CPU时间量,而RTOS调度程序根据其优先级为任务分配所提供的CPU时间。
图3:vCPU由实时操作系统使用 在虚拟机中运行以安排任务。
时间分离的另一个重要方面是中断的管理。在大多数情况下,管理程序会将中断分配给使用相应设备的特定虚拟机。管理程序可能还必须首先处理一些中断,然后通知虚拟机,例如,如果多个虚拟机共享一个物理核心。当虚拟机使用硬件信号量时,管理程序可能还必须特别小心,以避免虚拟机之间的冲突。
ARMv8-R架构支持虚拟机管理程序的额外权限级别以及核心计时器的虚拟化。这使得2级调度程序的实现更容易。此外,ARM通用中断控制器(GIC)也支持虚拟化,允许虚拟机管理程序直接将中断路由到虚拟机以及虚拟化中断。 ARM虚拟化扩展还使虚拟机之间的上下文切换更容易。
此外,管理程序必须提供在虚拟机之间进行有效和安全通信的方法。管理程序可以封装完整的通信机制,这在概念上类似于AUTOSAR的Inter-OS-Application Communicator(IOC)。或者,管理程序可以仅提供建立到虚拟机的通信信道所需的基本机制:共享存储器,以及可选地,虚拟机之间的通知机制。在这种情况下,虚拟机执行适当的通信机制。
虚拟化也是迈向更模块化软件更新的一步。与AUTOSAR OS-Applications不同,虚拟机可以独立构建,并且可以在目标上独立更新相应的二进制代码。
与非hypervisor方法相比有什么优势?
虚拟化技术的使用为车辆中的软件系统集成带来了许多优势:
虚拟化使得通过实施时间和空间分离来提供免于干扰的简化。
虚拟化允许独立开发的软件分区在同一个ECU上运行。软件分区可以使用不同的软件栈。
虚拟化允许将来自多个传统ECU的软件整合到更新,更强大的ECU中。
新功能以及多核和多核系统的引入增加了软件的复杂性。分析实时行为变得更加困难。由于管理程序实施严格的定时保护,因此避免了不同虚拟机中软件组件之间的时间干扰,从而可以更容易地理解在功能级别分解为分区的系统。 虚拟化允许软件开发中的新工作流程,其中不同的供应商可以并行地为不同的虚拟机开发软件,从而允许OEM更灵活的方法以及降低硬件成本。
具有独立和模块化的软件更新可以显着减少重新鉴定软件分区所需的工作量,尤其是在变化较小时。
结论
已经在应用处理器上生产的嵌入式虚拟化,如连接和信息娱乐等车载领域,现在正在向微控制器和实时处理器发展。该技术将使更复杂的软件功能集成在不仅可以使用应用程序处理器的域控制器上。一些新一代的微控制器,例如基于ARMv8-R架构的微控制器,具有内置的硬件扩展,使虚拟化更容易,更有效。随着这些新处理器进入市场,软件技术将可用。
博士Stefaan Sonck Thiebaut负责OpenSynergy首席执行官的整体产品开发和技术指导。该公司的联合创始人是一名机械工程师,毕业于斯坦福大学(美国),为该公司带来了20多年的软件开发经验。
以上是关于微控制器的虚拟化的主要内容,如果未能解决你的问题,请参考以下文章