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

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

3天内不再提示

有助于简化设计和嵌入式系统优化的虚拟化软件

星星科技指导员 来源:嵌入式计算设计 作者:嵌入式计算设计 2022-06-19 09:36 次阅读

随着嵌入式技术和市场预期的发展,设计工程师不断面临着将扩展功能集成到更小、功耗更低的设备中的压力。除了为这些新项目增加应用软件的复杂性之外,客户还需要交互式界面、无处不在的连接性、绝对的安全性和极高的可靠性。

嵌入式设计人员还面临着将较慢的传统接口电路与最新的高速控制设备和多个显示器相结合的挑战。最终的系统通常包括带有操作系统 (OS) 和应用软件的原始硬件,以及一个带有软件的完全独立的控制器来处理更新的需求。这种方法增加了组件数量和功率要求,并且无助于提高传统应用程序的性能。

为了应对这种日益增加的复杂性,设计人员正在利用托管多个操作系统的虚拟处理器来确保对实时事件的无阻碍、确定性响应,同时为用户和操作员提供基于图形的高级界面。虚拟化是通过添加一个虚拟机监视器 (VMM) 软件层或管理程序来实现的,该层或管理程序隔离各个分区并执行客户操作软件。管理程序创建一个或多个模拟计算机环境或虚拟机,它们可以同时在单个处理器上托管独立的操作系统和应用程序。

为了加快虚拟组件交互,芯片制造商正在将硬件辅助虚拟化整合到为延长生命周期的嵌入式应用程序量身定制的处理器架构中。例如,第二代 Intel Core 和 Intel Atom E6xx 处理器支持 Intel Virtualization Technology (Intel VT)。该技术通过使用硬件辅助来捕获和执行某些 VMM 指令,从而提高了基于软件的虚拟化性能和安全性。Intel VT 允许 VMM 将内存和 I/O 设备分配给特定分区,从而降低处理器负载并减少虚拟机切换时间。

虚拟隔离

将实时或安全关键嵌入式功能与基于图形的大型操作系统相结合的虚拟平台必须包含安全规定,允许未受影响的分区在发生软件故障或网络攻击时继续运行。例如,LynuxWorks 为各种虚拟机配置更新了 LynxSecure 分离内核和管理程序,如图 1 所示。该虚拟化软件旨在在安全防御环境中运行,其中具有不同安全级别的数据和应用程序必须共同驻留在单个设备上没有腐败。LynxSecure 使用虚拟机管理程序创建虚拟化层,将物理系统资源映射到每个客户操作系统,并为其分配专用资源,例如内存、CPU 时间和 I/O 外围设备。

图 1: LynxSecure 嵌入式管理程序允许多个不同的操作系统共享一个物理硬件平台。

pYYBAGKufnSAEv4bAAL6VVbFKDo251.png

TenAsys Corporation 为 Windows 提供 eVM,这是另一个嵌入式虚拟化平台,在同一处理器平台上与 Windows 一起托管嵌入式操作系统或实时操作系统 (RTOS)。为确保关键硬件接口未被虚拟化,eVM 对平台进行分区,从而保证最大性能和对实时事件的确定性响应。eVM 作为标准 Windows 应用程序安装,包括设置、启动和停止多个 RTOS 客户配置所需的所有集成工具。基于 Windows 的控制面板还允许用户分配中断、分配 I/O 设备和设置磁盘启动映像。系统设置完成后,eVM 为客户 RTOS 提供尽可能低的中断延迟、直接访问 I/O 和非分页 RAM

多核虚拟化

尽管虚拟化允许设计人员将操作系统和应用程序结合起来以降低系统功率要求和外形尺寸,但它对提高单个软件组件的性能几乎没有任何作用。设计人员的最新趋势之一是将多核处理器与虚拟化结合起来,通过并行处理提高性能。

通过虚拟化,管理程序在操作环境之间隔离和分配系统资源,以便实时、通用和遗留软件可以很容易地集成到多核系统中。除了内存和硬件设备分配之外,虚拟化还允许开发人员根据需要将多个内核分配给计算密集型应用程序,以最大限度地提高整体系统性能。

Wind River Hypervisor 将虚拟化扩展到多核应用程序,允许设计人员将硬件设备、内存和内核配置和划分为虚拟板,每个板都有自己的操作系统,同时保持必要的分离(见图 2)。这些虚拟板可以在单个处理器内核上运行,也可以根据系统需求分布在多个内核上。Wind River Hypervisor 已应用于安全关键型应用,在这些应用中,系统的安全认证和非认证组件传统上必须在物理上分离。然而,嵌入式虚拟化允许系统设计人员隔离经过安全认证的组件,同时仍使用经过认证的管理程序在单个硬件平台上运行。

图 2: Wind River Hypervisor 提供了一个虚拟化层,可将单核或多核芯片划分为具有不同级别保护和功能的多个分区。

poYBAGKufn2AXHEuAAOsX2P_0uQ393.png

Real-Time Systems 还为多核处理器提供虚拟化支持。RTS Real-Time Hypervisor 充分利用英特尔 VT 的安全性,允许在单个多核平台上完全独立地执行多个操作系统。设计人员可以为每个操作系统分配单独的处理器内核、内存和设备。通过配置文件,可以指定引导顺序,并且在需要时,可以独立于其他操作系统重新引导操作系统。为了促进操作系统之间的通信,管理程序还提供可配置的用户共享内存,以及基于 TCP/IP 的虚拟网络驱动程序。该系统可以运行多个 RTOS 实例,并与 Windows XP/CE/7/Embedded、QNX、Linux、On Time RTOS-32、VxWorks、Microware OS-9 和 Android 等高级操作软件混合使用。

开发和调试

无论虚拟应用程序是在单个处理器上运行还是跨多个内核运行,软件开发和调试工具都必须配置为支持多个操作系统和内存分区。例如,Green Hills Software 更新了其 INTEGRITY RTOS 和 MULTI 集成开发环境 (IDE),以支持最新的虚拟化微架构。INTEGRITY RTOS 围绕分区架构构建,为嵌入式系统提供增强的可靠性、安全性和实时性能。安全分区保证每个任务获得保护操作系统和用户任务免受错误和恶意代码攻击所需的资源。INTEGRITY 架构提供针对嵌入式和实时多核处理器优化的非对称多处理 (AMP) 和对称多处理 (SMP) 支持。

MULTI IDE 软件工具在单个包中包含多个 C 编译器选项、调试器、编辑器、配置管理器、代码浏览器和调试器。MULTI 还具有 DoubleCheck,这是一个集成的静态分析器,可以隔离由可能不在同一源文件中的代码段之间的复杂交互引起的错误。此外,Green Hills Probe 还为电路板启动、设备驱动程序开发和系统级调试提供多核调试控制。

下一步是通过更新和简化软件开发工具集来整合多核支持,同时最大限度地减少对当前代码创建实践的修改。各种软件供应商为基于第二代英特尔酷睿设备的产品提供高级开发工具和板级支持包。例如,CriticalBlue 的 Prism 软件分析工具允许开发人员分析现有的软件应用程序,评估新架构的优势,并选择合适的处理器。

Prism 分析在模拟器或硬件开发板上运行的现有代码的行为,以评估引入或添加更多并行代码结构的机会。例如,开发人员可以选择第二代英特尔酷睿处理器家族的适当成员,并分析英特尔超线程技术、数据缓存未命中和指令吞吐量的影响。Prism 为开发人员提供了通过将程序划分为多个线程可实现的性能增益的估计。

设计简化,性能优化

虚拟化是一种行之有效的方法,可以用更少的组件简化嵌入式设计,同时集成轻松组合不同操作软件或未来更新所需的框架。虚拟化还通过隔离硬件和软件层来简化系统升级,以便设计人员可以轻松添加或修改外围设备、内存和内核,而无需重构软件架构。虚拟机管理程序使设计人员即使在部署后也可以通过调整资源映射来优化性能。

审核编辑:郭婷

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

    关注

    68

    文章

    18237

    浏览量

    222015
  • 嵌入式
    +关注

    关注

    4981

    文章

    18265

    浏览量

    288189
  • 操作系统
    +关注

    关注

    37

    文章

    6273

    浏览量

    121859
收藏 人收藏

    评论

    相关推荐

    嵌入式热门发展方向有哪些?

    和远程医疗:通过将嵌入式传感器嵌入到患者身体或健康监测设备中,可以实现对患者健康状态的长期监测和远程传输。这有助于及时发现患者的健康问题,并采取相应的治疗措施。 便携和低成本产品:针
    发表于 04-11 14:17

    嵌入式会越来越卷吗?

    设计时需要充分考虑资源利用和性能优化。这要求设计师具备更高的技术水平和更丰富的经验。 软件复杂性增加:随着软件智能的不断发展,嵌入式
    发表于 03-18 16:41

    嵌入式系统发展前景?

    的发展前景也十分广阔。 随着物联网和智能设备的快速发展,嵌入式系统将更为普遍地应用于各种设备和设施,包括家用电器、医疗设备、交通工具等。这些设备将通过嵌入式系统实现智能
    发表于 02-22 14:09

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

    两个部分组成,其中嵌入式软件是指在嵌入式系统中运行的程序,用于控制硬件并提供特定的功能和服务。嵌入式软件
    发表于 02-19 11:23

    嵌入式学习步骤

    嵌入式行业是一个涉及广泛领域的行业,嵌入式、物联网、人工智能、智能与科学、电子信息工程、通信工程、自动化工程、测控、计算机科学等专业在嵌入式系统中使得
    发表于 02-02 15:24

    嵌入式硬件和软件哪个好?

    嵌入式硬件和软件哪个好? 嵌入式软硬件工程师哪个更有前途呢?一起来看看。 嵌入式是分为软硬件工程师的,首先我们先来看看嵌入式硬件工程师吧!
    发表于 12-05 15:17

    嵌入式开发为什么需要输出调试信息?

    嵌入式开发为什么需要输出调试信息? 因为输出调试信息是嵌入式开发中一项非常重要的实践,它有助于保证软件的可靠性、稳定性和性能,也是故障排查的关键工具之一。
    发表于 11-28 16:46

    ADI全新集成电路有助于监测心率

    电子发烧友网站提供《ADI全新集成电路有助于监测心率.pdf》资料免费下载
    发表于 11-24 10:38 0次下载
    ADI全新集成电路<b class='flag-5'>有助于</b>监测心率

    多层pcb生产,更有助于高精度布线

    多层pcb生产,更有助于高精度布线
    的头像 发表于 11-15 11:02 249次阅读

    如何成为一名优秀的嵌入式工程师?

    开发的嵌入式系统的架构、特点和性能。这有助于你更好地理解系统的需求,选择合适的技术和方法来满足系统的需求。 6.掌握调试技巧:在
    发表于 11-07 15:36

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件
    发表于 09-28 06:59

    STM32嵌入式操作系统介绍

    嵌入式操作系统的特点• 嵌入式操作系统是一种用途广泛的系统软件,通常包括与硬件相关的底层驱动软件
    发表于 09-11 07:24

    如何提高嵌入式软件单元测试效率

    在本指南中,您将学习如何通过在更短的时间内运行更多的测试来增加您的单元测试吞吐量。 这种效率的提高来自于使用虚拟平台而不是物理硬件作为开发平台。 本指南对任何开发或运行嵌入式软件单元测试的人都很
    发表于 08-28 06:31

    如何在持续集成开发流程中使用Jenkins和Docker?

    模型的功能。使用持续集成方法有助于最大限度地减少软件开发过程中的问题,例如大型合并冲突、重复工作和不可复制的错误。 Jenkins、Docker容器和Arm-Fast模型的持续集成实践为嵌入式
    发表于 08-02 10:50

    孔环是什么?深入了解孔环有助于实现PCB设计

    本文将探讨孔环,因为更深入的了解孔环有助于确保成功地实现PCB设计。
    的头像 发表于 07-19 10:21 2673次阅读
    孔环是什么?深入了解孔环<b class='flag-5'>有助于</b>实现PCB设计