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

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

3天内不再提示

通过嵌入式虚拟化充分利用多核芯片

星星科技指导员 作者:Rob McCammon 2022-06-14 15:35 次阅读

嵌入式应用程序中的虚拟化与其企业和桌面等价物有很多共同之处。独特的嵌入式用例和专门的底层技术为开发人员提供了优化设计以提高性能和响应能力的新机会。

在台式机、数据中心以及现在的嵌入式设计中采用多核技术可以满足类似的需求——在不提高系统时钟的情况下扩展计算容量,并为下一代设备和应用程序获得更高的每瓦 MIPS。

桌面和数据中心的主流多核需要来自已部署操作系统 (OS) 的对称多处理 (SMP) 支持。Linux 内核已经支持 SMP 近十年了,支持 SMP 的 Windows 和 Mac OS 版本在今天被广泛使用。

相比之下,嵌入式操作系统正试图赶上支持多核 CPU。即使操作系统越来越擅长在多核环境中运行,应用程序和中间件仍然面临线程安全、并发和负载平衡的挑战。

虚拟化软件架构

为了解决这些挑战,出现了不同的虚拟化策略,从类型 I 和类型 II 开始,如图 1 所示。在类型 I 虚拟化中,管理程序“拥有”CPU 并负责引导和运行客户操作系统。I 型平台是“精益、 中庸”和成熟的,从大型机和小型机的几代开发中出现,现在用于移动设备。相比之下,VMware Fusion、Parallels 和 Sun VirtualBox 等平台提供的 Type II 虚拟化侧重于最终用户体验,管理程序作为应用程序在另一个操作系统上运行,没有性能保证。

图 1: Type I 管理程序启动并运行客户操作系统,而 Type II 管理程序作为应用程序在另一个操作系统上运行。

pYYBAGKoOoOARXnNAAHs_DZEp1o044.png

嵌入式虚拟化遵循自己的范式。在路由器、交换机和网关等基础设施应用程序中,用例类似于企业。I 类管理程序托管 Linux 或实时操作系统 (RTOS) 实例,以支持单个硬件或冗余高可用性架构中的虚拟备件上的虚拟设备(防火墙、深度包检查器和其他设备)。

在移动设备中,OEM 使用裸机虚拟化来整合多个 CPU,以便在单个 CPU 上运行基带、多媒体和应用程序堆栈以及不同的操作系统(Android 或 Linux 在一个或多个虚拟机中,以及 RTOS 在另一个)以节省费用材料成本。

走向多核

除了硬件整合之外,虚拟化还提供了一种在单个处理器中跨多个内核分配现有负载的良好机制。嵌入式操作系统架构师倾向于将多核芯片视为离散 CPU 的集合。大多数传统 RTOS 多核支持都反映了这一观点,要求操作系统和堆栈的唯一副本在不同的内核上准协作运行。

随着 RTOS 供应商开始创建其产品的多核版本,他们经常使用负载到多核芯片中内核的静态映射。一些嵌入式虚拟化平台需要静态分配管理程序及其托管和运行的负载(即每个 CPU 内核一个管理程序,如图 2 所示)。

图 2:在负载的静态映射中,每个 CPU 内核分配一个管理程序。

pYYBAGKoOo2Af9x1AAGJbCJXE7A760.png

物理硅到虚拟化负载的静态映射效率低下,并且无法提供虚拟化所赋予的优势。一种更有效的方法是为每个客户操作系统配置一个虚拟 CPU,该虚拟 CPU 可以映射到单个 CPU(一对一)、共享一个 CPU(多对一)或分布在多个内核(一对多),如图 3 所示。

图 3:虚拟化支持负载到内核的一对一、多对一和一对多映射。

pYYBAGKoOpeAH02oAAItbhKFKyE271.png

将负载映射到虚拟 CPU 到物理内核可以在集成时锁定或改变以平衡负载,如以下应用程序所示。

负载均衡

当今的网络设备——移动电话、机顶盒、车载系统、网络设备和几乎任何类型的智能设备——都是应用平台,其负载与台式计算机、数据中心刀片和服务器一样多变且复杂。多核 CPU 承诺现代嵌入式软件的高吞吐量和快速响应,但预测负载和核心利用率超过了集成来自各种来源的软件的过程,尤其是来自应用商店的软件。

虚拟化为开发人员和集成商提供了额外的工具来优化设备性能。嵌入式管理程序可以监控来宾操作系统和主机策略软件的负载,以相应地分配 CPU 周期和其他资源。

多核电源管理

多核系统可能对针对单核系统优化的电源管理方案提出严峻挑战。特别是,许多多核片上系统 (SoC) 对动态电压和频率缩放 (DVFS) 的范围和能力有限制:

· SoC 子系统和多核 CPU 通常共享电源电压、时钟、缓存和其他资源,这意味着 DVFS 适用于所有内核。

· 在一个 SoC 子系统上缩放电压(如果可能)可以限制通过本地总线与其他子系统的通信,并拒绝访问共享内存,包括子系统自己的 DRAM

· 单个 SoC 子系统的时钟缩放限制了互操作性,尤其是对于同步总线。

· 一些操作全速使用或根本不使用核心,但其他操作会施加不同的负载。全有或全无使用很容易管理,但多核上的动态负载提出了更大的电源管理挑战。

现在添加多个操作系统。高级操作系统通常包括 DVFS 电源管理,例如 Linux 高级电源管理和动态电源管理以及 Windows/BIOS 高级配置和电源接口。大多数 RTOS 避免了限制实时响应的操作,并且当它们确实提供像 vxLib 的 vxPowerDown() 这样的显式电源管理 API 时,它们缺乏电源管理策略。即使一个操作系统能够管理其自己域中的电源,它也不会了解同一系统中其对等方的功能和状态。

DVFS 通过降低电压和时钟频率来提供能源效率。支持 DVFS 的 CPU 在固定电压和频率下提供安全工作点。随着负载/需求的增加或减少,电源管理中间件或操作系统会从工作点转换到工作点,如图 4 所示。

图 4:通过动态电压和频率缩放,可以跨内核迁移负载以节省功耗。

pYYBAGKoOqSAaHzUAADy7c9enn4708.png

DVFS 的一个逻辑扩展是将电压降低到 0 VDC 并通过仅利用两个操作点(完全停止和完全节流)在可用内核范围内应用来停止 CPU 时钟。这种巧妙的技巧只有使用虚拟 CPU(参见图 3 和图 4)才能实现,用于将负载映射到物理芯片并在 CPU 内核之间透明地迁移运行负载。关闭整个内核比 DVFS 更易于管理,并导致线性、高度可预测的性能-能源权衡。

多核基带

随着高带宽 4G 网络(尤其是 LTE)的出现,移动设备需要将更多的处理能力用于无线数据通信。为了以更高的并发性提高吞吐量,新出现的需求要求将整个内核专用于 4G I/O 操作。这一要求使无线芯片组供应商和传统 RTOS 供应商争先恐后地为 SMP 操作重新配置基带操作系统和软件堆栈。

更简单的解决方案是使用移动/嵌入式虚拟化来提高 4G 吞吐量。管理程序可以根据需要将可用内核映射到输入或输出操作,并缩减该映射以支持其他 CPU 密集型操作或执行每个内核的电源管理,而不是将两个、四个或更多内核专用于基带处理。

只有虚拟化可以扩展

多核软件设计既复杂又简单。系统架构师应该抵制将遗留软件元素批量分配给下一代嵌入式芯片上的可用内核的诱惑。

处理器路线图指向可用处理器内核的进一步倍增:今天在嵌入式 CPU 上是 2 倍,很快会达到 4 倍、8 倍甚至更高。这种过剩的硅片将很快超过用于配置和管理多核软件负载的静态方法。

只有嵌入式/移动虚拟化才能提供可扩展且灵活的机制,以实现多核处理能力的优势并简化系统设计、集成和部署,同时使这些系统更加可靠和安全。

审核编辑:郭婷

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

    关注

    68

    文章

    19096

    浏览量

    228793
  • 嵌入式
    +关注

    关注

    5059

    文章

    18972

    浏览量

    301925
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10803

    浏览量

    210796
收藏 人收藏

    评论

    相关推荐

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+全文学习心得

    Hypervisor是一种在嵌入式系统中实现虚拟技术的关键组件,它能够在同一硬件平台上并行运行多个操作系统或应用程序,提供资源隔离、管理和优化。通过引入时空域隔离的
    发表于 10-09 19:11

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第三四章阅读报告

    嵌入式系统对虚拟技术的多样需求。 实现细节 :学习了PRTOS Hypervisor在实现过程中遇到的关键问题和解决方案。例如,如何通过
    发表于 10-09 18:29

    【「嵌入式Hypervisor:架构、原理与应用」阅读体验】+第一二章读后感

    Hypervisor的重要性和应用场景有了更深入的认识。我认为,嵌入式Hypervisor作为一种前沿的虚拟技术,在优化有限资源、实现异构操作系统安全隔离等方面具有广泛的应用前景。 此外,这两章的内容也让
    发表于 10-09 18:22

    嵌入式Hypervisor:架构、原理与应用 阅读体验 +Hypervisor基础概念

    解决嵌入式系统资源有限但应用场景日益复杂的难题。单核处理器计算性能的提高和多核处理器的引入为嵌入式Hypervisor的发展提供了硬件基础。与此同时,处理器芯片供应商对CPU
    的头像 发表于 10-08 15:08 337次阅读
    <b class='flag-5'>嵌入式</b>Hypervisor:架构、原理与应用 阅读体验 +Hypervisor基础概念

    嵌入式系统的未来趋势有哪些?

    (ML)技术的快速发展,嵌入式系统将更多地整合这些先进技术,以支持智能决策和自动。在设备上直接运行AI和ML模型,进行图像识别、自然语言处理、预测分析等任务,将极大提升嵌入式系统的智能
    发表于 09-12 15:42

    七大嵌入式GUI盘点

    嵌入式图形用户界面(GUI)是一种为嵌入式系统设计的用户界面,它可以让用户通过图形的方式与设备进行交互。以下是对七种嵌入式 GUI 的盘点
    发表于 09-02 10:58

    学习hypervisor嵌入式产品安全设计

    第一部分(第1~2章)介绍Hypervisor基础,涵盖虚拟技术与实现、主流的嵌入式Hypervisor产品,以及基于分离内核的嵌入式Hypervisor等内容。第二部分(第3~12
    发表于 08-25 09:11

    INA199如何解读和利用电流感应放大器的输出摆幅规格,以便我能够充分利用电流测量结果?

    INA199如何解读和利用电流感应放大器的输出摆幅规格,以便我能够充分利用电流测量结果?
    发表于 08-07 07:07

    一文解析嵌入式多核异构方案,东胜物联RK3588多核异构核心板系列一览

    嵌入式人工智能快速发展,对于高性能计算需求越来越大。为了解决性能与功耗的平衡、通过并行加速计算等,越来越多地嵌入式处理器使用同构多核、异构
    的头像 发表于 06-17 15:45 1774次阅读
    一文解析<b class='flag-5'>嵌入式</b><b class='flag-5'>多核</b>异构方案,东胜物联RK3588<b class='flag-5'>多核</b>异构核心板系列一览

    深度详解嵌入式系统专用轻量级框架设计

    MR 框架是专为嵌入式系统设计的轻量级框架。充分考虑了嵌入式系统在资源和性能方面的需求。通过提供标准的设备管理接口,极大简化了
    发表于 04-27 02:32 900次阅读
    深度详解<b class='flag-5'>嵌入式</b>系统专用轻量级框架设计

    什么是多核多线程?多核多线程如何提高程序的运行效率?

    单线程无法充分利用多核处理器的并行计算能力。
    的头像 发表于 02-20 10:22 1217次阅读

    嵌入式软件开发应该掌握哪些知识?

    的控制,如GPIO、串口、SPI、I2C 等。这使得嵌入式软件开发人员能够充分利用硬件资源,满足特定的需求。 1.2数据结构与算法 嵌入式系统通常具有有限的内存资源。通过使用合适的数据
    发表于 02-19 11:23

    如何充分利用单片机(MCU)的非易失性存储器呢?

    如何充分利用单片机(MCU)的非易失性存储器 单片机(MCU)的非易失性存储器(NVM)是存储数据和程序的重要组成部分。它可以保留数据,即使在断电或复位后也不会丢失。为了充分利用MCU的NVM,我们
    的头像 发表于 12-15 10:10 1215次阅读

    FPGA为嵌入式设计带来了强大的功能与灵活性

    尽管 FPGA 为嵌入式设计带来了强大的功能与灵活性,但额外的开发流程也给设计工作增加了新的复杂性和限制问题。整合传统的硬件-FPGA-软件设计流程并充分利用 FPGA 的可再编程功能是我们的一个
    的头像 发表于 12-07 09:35 467次阅读

    技术推荐 | 开源嵌入式虚拟技术释放 x86 平台潜能 实现智能驾驶舱、工业负载整合等场景产品

    随着物联网设备的爆炸增长和万物互联应用的快速发展,虚拟技术在嵌入式系统上受到了业界越来越多的关注、重视和快速发展。嵌入式系统与
    的头像 发表于 11-24 20:00 817次阅读
    技术推荐 | 开源<b class='flag-5'>嵌入式</b><b class='flag-5'>虚拟</b><b class='flag-5'>化</b>技术释放 x86 平台潜能 实现智能驾驶舱、工业负载整合等场景产品<b class='flag-5'>化</b>