0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

嵌入式虚拟化支持多核实时应用程序的可扩展性

星星科技指导员 来源:嵌入式计算设计 作者:Kim Hartman 2022-06-21 10:29 次阅读

嵌入式虚拟化对 OEM 有几个积极的影响。例如,一旦有一种方法可以拆分应用程序以在多个内核上运行同时保持确定性,该解决方案随后可以使实时应用程序能够向上或向下扩展它们使用的内核数量。借助可扩展性,OEM 可以为其产品提供一系列性价比选项,而无需更改软件。

虚拟化在计算机科学中并不是一个新概念,但随着多核处理器的出现,它引起了新的兴趣。尽管虚拟化被认为是保持多个处理器内核忙碌的一种方式,但需要注意的是,大多数类型的服务器或客户端虚拟化并非旨在满足时间关键型嵌入式处理的需求。这些虚拟化方法通常以相同的方式对待多核芯片上的所有处理器。在这些系统中,单个操作系统 (OS) 在处理器可用时将任务分配给处理器,以试图使所有处理器尽可能地负载处理任务。

服务器和客户端虚拟化通常会虚拟化所有硬件,包括 I/O 接口。当 I/O 接口需要服务时,虚拟机监视器 (VMM) 会处理请求并将结果传递给它所支持的操作系统客户端。没有办法确保在属于该客户端的 I/O 需要服务时加载特定的 OS 客户端,也没有一种全局方法可以将特定 I/O 与客户端 OS 和在其上运行的应用程序相关联。因此,无法准确保证处理 I/O 事件需要多少时间。因此,这种方法不适用于处理嵌入式系统中的实时处理。

嵌入式系统设计人员希望直接控制系统以获得确定性和一致的性能。虽然需要平衡整体处理器利用率并保持多核处理器尽可能繁忙,但这并不是首要任务。首先,嵌入式设计人员正在寻找能够帮助他们在增加功能和/或降低 OEM 产品成本的同时保持确定性的软件技术。

嵌入式设计人员正在寻找一种软件平台,使他们能够组合不同类型的操作系统,以便针对手头的任务优化处理——例如,处理关键 I/O 时序要求的实时操作系统和通用操作系统( GPOS) 来利用 COTS 图形丰富的应用程序,这些应用程序运行人为导向的功能。他们还在寻找扩展应用程序的解决方案,以便他们可以使用相同的应用程序代码库提供不同的产品。这降低了工程开发成本,缩短了上市时间,更重要的是,使新产品能够基于经过验证的软件,这些软件可以在性能和可靠性方面不断升级。

嵌入式虚拟化保留了确定性

为了使嵌入式应用程序具有确定性,它必须从开发项目的一开始就进行设计。确定性不是可以在最后添加的东西。必须特别考虑以确保应用程序线程可以直接控制它们所依赖的 I/O 接口。

图 1 显示了一个拾放装配系统,其中 TenAsys 的 Windows 实时操作系统 (RTOS) 托管在四核处理器的三个内核上,而人机界面 (HMI) 托管在第四个内核上。运行 Microsoft Windows 的核心。运行在不同 CPU 上的实时任务在需要时通过全局对象网络进行通信。该自动化装配系统包括三个实时子系统:引导装配机器人的视觉系统、多轴机器人以及将组件索引到装配位置然后运出装配单元的材料运输系统。开发和调试此类应用程序以确保每个组件按要求可靠运行的理想方法是将应用程序拆分为单独的组件。

图 1:嵌入式系统可以节省成本并保持实时响应能力,同时通过在多核处理器上托管多个操作系统来添加功能。

pYYBAGKxLUSAPzFwAAcaGvDUllA842.png

例如,HMI 将是一个单独的应用程序模块,可以在 Windows 等非实时环境中运行。这需要一个可以划分平台资源的操作系统环境——I/O、内存、中断和 CPU 内核(在多核处理器平台的情况下)——以允许应用程序模块完全独立地运行。嵌入式虚拟化环境支持这一点,允许不同的实时任务在特定的处理器内核上运行。操作软件对物理 I/O 接口进行分区,以便来自设备之一的中断仅中断处理该设备的处理器。这确保了处理实时事件的可预测响应时间。

多核芯片上的多个操作系统环境的托管由称为嵌入式虚拟化管理器的软件或包含在 RTOS 中的特殊嵌入式虚拟化功能进行管理。

嵌入式虚拟化可以以不同的方式实现,具体取决于处理器提供的硬件虚拟化支持量。半虚拟化解决方案使用软件技术来修改客户操作系统,允许它们并肩工作,而不会相互影响或损害系统的实时响应能力。实现提供了不同程度的平台分区,并且通常仅限于在一个平台上一次运行两个操作系统——一个 RTOS 和一个 GPOS。一些实现已经发展到 GPOS 不需要任何修改并且很容易支持最新版本的 GPOS 的地步。当将 GPOS 耦合到 RTOS 的目的是按原样使用传统 RTOS 应用软件时,这是一个真正的优势,无需任何修改,

多年来,其中一些实现已经过优化,可为特定的操作系统组合提供最佳性能。这样做的缺点是每个实现都特定于特定的操作系统组合,提供通用虚拟化解决方案以支持多种操作系统组合是一种不切实际的方法。

最近推出的 VT(由 Intel 处理器支持)等硬件辅助虚拟化功能通过提供内置于处理器中的硬件辅助,消除了半虚拟化的一些软件复杂性。通过使用硬件虚拟化支持,可以构建 VMM 以在不了解客户操作系统的情况下运行。因此,VMM 可以支持针对该平台的任何操作系统。

英特尔处理器特性,如 VT-x(VT 特性的一个子集)确保客户操作系统发出的任何内存地址都自动映射到物理内存中的适当地址位置。同样,称为 VT-d 的硬件辅助虚拟化功能自动映射总线主控 DMA 设备的 I/O 内存访问,使作为来宾 RTOS 应用程序一部分的本机 I/O 驱动程序无需修改即可在虚拟化环境中使用。这些硬件辅助功能大大降低了 VMM 的复杂性,并使嵌入式虚拟化成为更可行的解决方案。

使可伸缩性在实时应用程序中发挥作用

虽然嵌入式虚拟化为将实时应用程序拆分为单独的独立操作组件提供了理想的环境,但拆分应用程序需要一种机制来支持进程间通信 (IPC)。

过去,设计人员经常在应用子系统之间建立以太网链路,并使用 TCP/IP 堆栈在子系统之间进行通信,但这种方法繁琐、速度慢,有时不可靠,并且给系统的行为增加了不确定性,影响了确定性。

更好的 IPC 方法是使用称为全局对象网络的概念。 全局对象网络提供了一个具有内置启动和发现服务的托管通信环境,使应用程序能够在加载时动态分布在一个或多个 CPU 上。自动找到需要其他进程服务的进程,并且本地管理器记录它们的位置以跟踪已建立的 IPC 链接。如果通信链路或目标进程发生故障,管理器会通知启动进程。此外,当启动过程不再需要 IPC 链接时,本地管理器通过清除所有记录来保持系统清洁。由于全局对象网络与操作系统集成,其开销很低,并且不需要应用程序开发人员创建任何自定义软件。

操作系统管理全局对象的位置和存在,进程通过这些对象传递信息以确保系统的完整性。例如,一个进程在多个处理器上使用的对象是“保持活动状态”的,只有在所有进程都终止时才会被删除。这需要底层管理基础架构来确保不会过早删除对象,或者不会因为未使用资源清理不当而导致内存泄漏。同样,如果一个处理节点在其进程终止之前发生故障,管理器需要通知所有其他处理节点上的全局对象管理器它们应该清除对故障节点上对象的任何本地引用。

GOBSnet 通信示例

图 2 显示了图 1 所示系统的软件架构的高度简化视图。除了 RTOS 和实时过程软件,Cores 0-2 还运行 INtime GOBS manager 软件,其功能是管理全局对象通信。(GOBSnet 是 TenAsys 的全球对象网络,由公司的 INtime Distributed RTOS 和 INtime for Windows RTOS 支持。)

图 2: GOBSnet 促进了在不同处理器内核上运行的实时进程之间的通信。

poYBAGKxLU2AMl8BAAX9vtS0lPw407.png

使用 GOBSnet,一个内核上的进程可以使用全局内存对象与另一个内核上的另一个进程通信。启动进程,图 2 中的“进程 1”,创建内存对象并将其编入该内核的根进程中。完成此操作后,运行在其他处理节点上的进程可以找到内存对象,从而为所有进程提供高效的共享内存接口。这同样适用于 IPC 使用的所有对象范围(包括信号量和邮箱)。

第二步是让其他进程定位内存对象并获取其内存位置。这是通过指定处理器名称来开始搜索来完成的。当进程找到对象时,它将其位置、类型和参数存储在处理器节点的 GOBS 管理器中的引用对象中,并保留该引用对象的句柄。从那时起,当远程进程(本例中的进程 2 或进程 3)想要写入或读取内存对象时,它会使用引用对象的句柄来检索适当的内存对象信息以访问它。

当进程 2 或进程 3 终止其节点的 GOBS 管理器时,该管理器会清除有关远程内存对象的所有引用对象信息。当进程 1 终止时,它会删除它创建的所有对象,包括内存对象。如果这不是最佳操作,则可以选择使用计数器创建内存对象。每当另一个进程连接到内存对象时,计数器就会增加,而每当这些关联的进程之一终止时,计数器就会减少。结果是内存对象仅在与其连接的所有进程都终止时才被删除。这允许远程进程进程 2 和进程 3 可以继续通过内存对象传递信息的情况,即使启动进程进程 1 已经终止。

无论实时应用程序分布在同一多核芯片上的 CPU 之间,还是网络在一起的不同微处理器组件上的不同 CPU 内核之间,都可以使用 GOBSnet 通信。通过围绕这种灵活的系统软件架构设计系统,嵌入式系统开发人员有足够的空间来提高其产品的处理能力或相应地缩小其处理能力,以应对未来的挑战。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    17943

    浏览量

    221419
  • 嵌入式
    +关注

    关注

    4958

    文章

    18117

    浏览量

    285880
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10301

    浏览量

    206122
收藏 人收藏

    评论

    相关推荐

    嵌入式Linux应用程序开发详解-第3章

    电子发烧友网站提供《嵌入式Linux应用程序开发详解-第3章.pdf》资料免费下载
    发表于 11-16 11:19 0次下载
    <b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>应用程序</b>开发详解-第3章

    嵌入式Linux应用程序开发详解-第2章

    电子发烧友网站提供《嵌入式Linux应用程序开发详解-第2章.pdf》资料免费下载
    发表于 11-16 11:18 0次下载
    <b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>应用程序</b>开发详解-第2章

    嵌入式Linux应用程序开发详解-第1章

    电子发烧友网站提供《嵌入式Linux应用程序开发详解-第1章.pdf》资料免费下载
    发表于 11-16 11:17 0次下载
    <b class='flag-5'>嵌入式</b>Linux<b class='flag-5'>应用程序</b>开发详解-第1章

    扩展性对物联网管理系统有哪些影响?

    扩展性对于物联网管理系统的设计和开发非常重要,它直接影响着系统的性能、可靠性和能耗等方面,是评估一个系统优劣的重要因素之一。可扩展性对物联网管理系统的影响主要体现在以下几个方面:
    的头像 发表于 10-11 15:15 215次阅读

    扩展性对物联网管理系统有哪些影响?

    :物联网管理系统的可扩展性意味着它可以支持各种不同的硬件平台和传感器设备,这使得企业可以根据实际需求选择适合的设备,并方便地与系统进行集成。    功能扩展:物联网管理系统的可扩展性
    的头像 发表于 09-19 11:23 279次阅读

    面向嵌入式系统的轻量级框架mr-library简介

    mr-library 是一个面向嵌入式系统的轻量级框架,提供统一的底层驱动设备模型以及基础服务功能,具有模块化设计、可配置性和扩展性的特点,可帮助开发者快速构建嵌入式应用程序
    发表于 09-15 10:35 870次阅读

    一个面向嵌入式系统的轻量级框架

    mr-library 是一个面向嵌入式系统的轻量级框架,提供统一的底层驱动设备模型以及基础服务功能,具有模块化设计、可配置性和扩展性的特点, 可帮助开发者快速构建嵌入式应用程序
    发表于 09-01 12:22 281次阅读

    IO扩展模块有哪些特点

    自动领域中不可或缺的一部分,具有多样的功能应用、灵活的安装和配置、高度的扩展性实时性和稳定性以及广泛的适用范围等特点。这些特点使得I
    发表于 08-31 18:14

    SD-WAN组网的可扩展性怎么样?

    SD-WAN组网具有很好的可扩展性,能够轻松满足企业网络不断扩张和增长的需求,同时保持网络的高效和可管理性,这使得SD-WAN组网能够随着企业的快速发展而快速调整规模,变更拓扑,采取不同的接入方式
    的头像 发表于 08-18 11:29 288次阅读

    什么是云计算的可扩展性

    不断增长的数据池需要巨额投资和劳动密集型管理,但云托管的全球采用已经彻底改变了我们所知的数据行业。除了成本效益和灵活性之外,选择云而不是本地架构的主要好处之一是能够轻松快速地扩展。那么什么是云计算的可扩展性
    的头像 发表于 08-08 17:46 1269次阅读

    中国首颗ARM+RISC-V异构多核MCU伴随IAR在上海国际嵌入式展亮相

    6月14日,2023上海国际嵌入式展在上海世博展览馆3号馆盛大开幕。随着数字与智能时代的到来,嵌入式产业在中国迅速崛起,新型的产业形态吸引越来越多的中国企业进入新的业务板块,展会涵盖嵌入式
    发表于 06-15 18:32

    PX5的ARM TrustZone支持嵌入式系统变得更加安全!

    实时环境扩展支持标准接口意味着开发者立即就能在嵌入式IoT平台上使用众多开源和商业软件栈,从而降低上市时间,提高设备固件的质量,并改善平台间的可移植性。这些优势能帮助设备制造者在固件
    发表于 05-18 13:44

    瑞萨嵌入式应用程序编程接口参考手册

    瑞萨嵌入式应用程序编程接口参考手册
    发表于 05-04 19:44 1次下载
    瑞萨<b class='flag-5'>嵌入式</b><b class='flag-5'>应用程序</b>编程接口参考手册

    什么是可扩展性,为什么它很重要

    扩展性是按需轻松扩展或升级的能力。它是产品、系统、团队或公司提供满足不断增长的需求的服务的能力。提供足够的基础设施来满足更苛刻的IT要求,例如增加存储和安全性,同时保持低成本,是数据中心运营商的日常斗争。
    的头像 发表于 04-21 10:36 3124次阅读
    什么是可<b class='flag-5'>扩展性</b>,为什么它很重要

    嵌入式实时虚拟机ZVM介绍

    嵌入式实时虚拟化技术是一种允许在单个硬件平台上同时运行多个操作系统、并保持确定性和时间关键性能的技术,该技术可为嵌入式系统开发带来许多好处,例如硬件整合、系统隔离、系统灵活可靠性、安全
    的头像 发表于 03-25 09:45 1979次阅读