多核处理器在计算领域的盛行现已成为现实,OEM 正在尝试在不同处理器内核上划分其应用程序的方法。在嵌入式计算领域,这可能意味着同时在同一处理器芯片上托管多个异构操作系统。因此,虚拟化是关键。虽然某些虚拟机管理器 (VMM) 仅混合使用通用操作系统 (GPOS),但同时包含实时操作系统 (RTOS) 和 GPOS 的任务关键型虚拟化方案带来了其独特的挑战。Chris 揭示了虚拟化和确定性的细节,提供了一个示例,然后解释了遗留应用程序如何适应该方案。
考虑到多核处理器在嵌入式领域中的日益普及,虚拟化是使多个操作系统在多核处理器芯片上共存的关键。但是,每个虚拟化嵌入式系统都是不同的,特别是当嵌入式系统涉及在同一平台上的不同来宾操作系统上运行的任务关键型或高度安全的应用程序时。通常,实时操作系统 (RTOS) 和通用操作系统 (GPOS) 将组合在一起。需要不同的操作系统,因为实时或机器导向的任务对操作系统功能的需求与常规用途或人为导向的任务不同。
但是,在构建此类任务关键型嵌入式系统时,虚拟化的实施方式至关重要。必须保持系统的响应能力,这意味着保留原始系统以时间可预测和可重复或确定的方式响应刺激的能力。但挑战也随之而来:并非所有虚拟机管理器 (VMM) 实现都是平等的。例如,服务器应用程序中使用的 VMM 将最大资源利用率作为其最高优先级,而为电信应用程序需求而构建的虚拟机管理程序通常侧重于数据吞吐量。
但是,两者都不关注对外部事件的响应能力,而实时防御应用程序的虚拟化方案需要这种响应。对于大多数关键任务军事嵌入式系统,需要一种特殊的虚拟化 - 嵌入式虚拟化 - 以便确定性地响应一系列外部事件。这种理想的军事嵌入式系统虚拟化方法还允许OEM节省投资成本并保护知识产权,因为它可以轻松地将其传统的实时应用程序与新系统元素一起托管,而对现有代码的更改(如果有的话)很少。但是,托管旧版应用程序比简单地在 VMM 或虚拟机监控程序上执行代码要困难得多。我们的讨论探讨了虚拟化和确定性之间的关系,包括一个示例,并解释了如何在遗留应用程序中折叠。
对事件的确定性响应
构建确定性 VMM 的关键是首先处理如何将处理器中断传递到每个来宾操作环境的问题。启用最短的响应时间可确保确定性,并需要区分可以虚拟化的 I/O 资源和不应虚拟化的 I/O 资源。例如,磁盘访问通常不是嵌入式系统中的时间关键型元素,因此可以对其进行虚拟化。这样,单个磁盘可以在多个操作环境之间共享。相比之下,来自硬件设备(例如为闭环运动控制提供输入的编码器)的中断需要根据精确的时间表进行处理,以便应用程序以可预测的方式工作。因此,这些过程的中断输入实际上必须“硬连线”到运行实时控制程序的处理器。
嵌入式虚拟化平台必须在多个操作系统之间实现隔离,同时将虚拟化开销降至最低。因此,允许此平台托管的操作系统软件和应用程序直接访问关键 I/O 设备,以保持对设备事件的确定性响应。虚拟化整个计算机环境的通用虚拟化方法可能会以牺牲对外部事件的响应为代价来最大化 CPU 的利用率。他们试图最大化平台的效用,并且通常通过在 CPU 可用时将工作分配给 CPU 来实现这一点。通过这种方式,他们可以使用高比例的可用CPU周期(在某些情况下超过90%),这使他们能够降低运行给定数量的服务器应用程序的硬件成本。
相比之下,嵌入式 VMM 实现必须最大限度地提高应用程序对硬件事件的响应的可预测性,CPU 利用率并不那么重要。最重要的因素是给定接口到 CPU 的性能,VMM 通过在虚拟环境之间隔离硬件来确保这一点。
示例:GPOS/RTOS 虚拟化
考虑以下示例,其中虚拟环境之间的硬件隔离是使用多个计算变电站的系统中的一个因素。该应用程序的目的是检索小型无人船并将它们放置在海军舰艇上。问题是如何引导固定在船上的机器人,以便它可以在无人浮动车辆上安装线或固定装置,同时两者都在海上折腾。机器人起重机使用视觉系统来准确查看车辆的连接点的位置,并计算算法以预测未来在海洋作用下移动时的位置。机器人起重机由运动控制系统引导到预测有吊钩或闩锁的位置,并在两者结合在一起时进行接触。
如前所述,此应用程序利用多个计算子系统。其中一个处理器专用于处理与视觉系统相关的任务,而与驱动运动子系统相关的操作任务专用于另一个CPU。该方案允许视觉系统的处理垄断一个处理器的周期而不影响系统的其他功能,反之亦然。第三个处理器没有时间关键型处理需求,支持人机界面 (HMI)。在多核 CPU 和 VMM 软件出现之前,这三个处理子系统将作为三个独立的计算单元实现,具有自己的处理器卡、内存、电源调节电路等。
现在,三个独立的子系统可以托管在同一处理器芯片的不同内核上,从而在不牺牲独立功能的性能和确定性的情况下节省系统成本。如图 2 所示,保持系统响应能力的关键之一是将处理器内核和相关 I/O 专用于单独的操作环境。
为了保持确定性,嵌入式 VMM 开发人员必须仔细规划虚拟化,以便中断开销可预测、可衡量且最小。此外,每个 CPU 内核必须有自己的任务计划程序和虚拟机,而不是使用旨在共享多个内核的单个主计划程序。这种方法的另一个好处是消除了与主调度程序相关的开销,许多虚拟化方案使用它来实现对称多处理 (SMP) 来管理多个处理器内核上多个 GPOS 的执行。与嵌入式多处理方法相比,SMP 调度程序的开销相对较高,后者不会在系统级别强加调度策略。
实时折叠,遗留流程
如前所述,多操作系统嵌入式系统最有价值的用途之一是将传统的实时流程整合到新的或升级的产品中。军事 OEM 通常拥有大量的知识产权投资,他们不想在迁移到新平台时冒险或放弃这些投资。通常,这些OEM将从在VMM上运行其传统RTOS与Windows一起开始。但随着时间的推移,他们可能会发现需要扩展的实时功能,并在Windows上运行多个RTOS。
在考虑将遗留应用程序集成到利用RTOS和GPOS的虚拟化方案中时,除了确定性问题之外,另一个问题是管理环境之间的有效通信。要将旧版应用程序从多平台环境迁移到单平台、多核、多操作系统环境,虚拟化时间不严格的标准资源(用于引导的磁盘服务、用于日志记录的串行终端服务以及 Windows 虚拟通信服务,如虚拟以太网和虚拟串行互连)是值得的, 同时避免虚拟化对提供确定性至关重要的 I/O(例如,运动控制接口和视觉子系统)。为了以最少的数据丢失实现最大性能(典型要求为无),确定性地处理中断至关重要。
使遗留软件在嵌入式虚拟环境中轻松工作的另一个方面是为软件加载提供支持。嵌入式 VMM 平台应允许每个来宾操作系统像在电脑上一样正常启动,而无需更改,而不是要求使用特殊的主板支持包 (BSP) 修改每个来宾操作系统以使软件在 VMM 中正常运行。这消除了对软件修改的需要,可以大大降低成本并简化嵌入式系统的实现。
通过嵌入式虚拟化利用多核芯片
嵌入式虚拟化使OEM厂商有机会在RTOS和GPOS所在的平台中充分利用新的多核处理器芯片,在不牺牲确定性的情况下降低系统成本并保留遗留代码。对于军事嵌入式系统市场来说,这项新技术来得正是时候,因为所有原始设备制造商都在寻找提高效率的方法。
审核编辑:郭婷
-
嵌入式
+关注
关注
5058文章
18971浏览量
301889 -
操作系统
+关注
关注
37文章
6676浏览量
123130 -
RTOS
+关注
关注
21文章
809浏览量
119357
发布评论请先 登录
相关推荐
评论