嵌入式虚拟化技术助力混合关键型物联网系统
随着工业物联网 (IIoT) 不断扩大,越来越多的系统需要运行企业应用程序,实现与时俱进。但是,将混合关键型工作负载放在单个设备可能会危及工业工作负载的确定性。为了解决这个问题,开发人员采用了嵌入式虚拟化技术。
企业和嵌入式虚拟化技术的简要复述
虚拟化创建了一个抽象层,允许多个虚拟机 (VM) 在同一硬件上运行。给定虚拟机中的程序的运作方式就如同它们在专用硬件上运行一样,并具有管理共享硬件的管理程序。
在企业环境中,虚拟化可以提高灵活性并最大程度地提高资源利用率。通过使用对称多处理 (SMP) 技术,一般用途操作系统(如 Microsoft Windows 或 Linux)可以将工作负载均匀地分布到多个同构的内核或处理器(图 1)。以这种方式分发应用程序可以增加计算密度、减少硬件要求、降低能耗并减少维护成本。
企业虚拟化的另一个广受欢迎的用途是在虚拟机中运行不同的操作系统。例如,同一个物理系统可以运行 Windows、Linux 和 MacOS (图 2)。
IIOT 系统的嵌入式虚拟化可提供与其企业竞争产品相似的优势,但后者的实施具有一些更微妙的挑战。
为了确保安全且可靠的操作,工业进程通常通过实时操作系统 (RTOS) 或裸机固件来管理。这些工作负载必须绑定到专用的硬件资源以确保确定性,并且还必须与企业应用程序安全隔离。与此同时,还必须实施与企业软件的进程间通信 (IPC),以保证将工作负载整合放在首要位置。
不幸的是,采用 Windows 等操作系统的 SMP 在分配内核、内存和 I/O 资源时,不可避免会生成非确定性的管理开销。这种形式的虚拟化还无法将处理器资源专用于确定性的工业工作负载。
在另一方面,嵌入式管理程序可以将工作负载与特定硬件资源隔离,但它们也会导致性能损失。
另一种方法是利用非对称多处理 (AMP)。
混合关键型计算的非对称多处理
AMP 的设计目的是支持 SMP 扩展,但面向的是具有多个不同的处理器架构的系统。AMP 的副作用是会将工作负载分配给特定的某个或某些处理器内核以维持确定性,甚至是基于单一处理器架构的系统。(图 3)
在多核主机处理器上,这意味着支持 AMP 的 RTOS(如 TenAsys 的 INtime for Windows)和标准一般用途的操作系统可以安全地共存于同一个 IIOT 系统上。
通过修改 Windows 启动配置、INtime 分区内存、I/O、中断和其它系统资源,使得一部分保留专用于 RTOS 实例。因此,两种操作系统类型在其显式内核上本地运行,这既可实现工业工作负载的确定性,又可最大程度地提高系统的整体性能(图 4)。
IPC 仍然是基于 AMP 的虚拟化架构的一大难题。缺乏共享内存会阻止操作系统成为所有系统进程的主要通信服务。
为了避免这种情况,INtime 将所有系统内核视为 IPC 主机,并使用 “全局对象” 来将进程信息从一个实例传递到另一个实例(图 5)。全局对象可以携带时间同步、报警、队列及其它信息,并且还与 RTOS 内核共享 HMI 等 Windows 资源。
英特尔® 处理器采用了硬件辅助的功能,例如集成内存管理单元 (MMU) 和英特尔® 虚拟化技术(英特尔® VT-x),简化了 INtime for Windows 等技术的部署。英特尔凌动®、英特尔® 酷睿™ 和英特尔® 至强® 处理器有多种内核数量、时钟速度、内存和 I/O 可选,以帮助开发人员满足他们的具体虚拟化需要。
采用嵌入式虚拟化技术支持工业物联网
通过虚拟化,IIOT 设计师可以将以前专用于电动机控制或动力输送等任务的企业级功能(例如分析、远程管理 和 IT 安全性)添加到工业设备。IT 和 OT 技术组合带来的见解打开了成本节约和潜在收入流的大门,但需要另一种方法来实现虚拟化。
要确保 IIOT 系统上嵌入式进程的安全、安全性和可靠性,AMP 是首选的虚拟化架构。通过 AMP,INtime for Windows 和英特尔处理器等解决方案,可以基于工业工程师信赖的技术来提供企业虚拟化的优势。