混合关键性系统技术【同构异构】【SMP、AMP、BMP】【嵌入式虚拟化】

混合关键性系统技术【同构异构】【SMP、AMP、BMP】【嵌入式虚拟化】

  • 1 介绍
    • 1.1 概述
      • openEuler Embedded 的运行模式
      • openEuler Embedded 混合关键性系统技术架构
      • UniProton
    • 1.2 同构异构区别 【硬件侧】
    • 1.3 系统架构【SMP、AMP、BMP】
      • 多核处理器平台的系统架构 【软件侧】【SMP、AMP、BMP】
      • 对称多处理架构
      • 非对称多处理架构(AMP)
      • SMP在实时系统潜在的问题
      • 非对称多处理器AMP的特点
    • 1.4 虚拟化
      • 基础
      • 虚拟机监视器(Hypervisor)
      • 虚拟化原因
      • 嵌入式虚拟机监视器需求
  • 2 OpenAMP
    • 概述
    • 部署方案
  • 3 示例
    • 工业自动化中的集成
    • 多核SoC中应用的概念分配
    • 嵌入式实时虚拟机ZVM【湖大嵌入式实验室 2 openEuler】
    • 海思工业硬实时通用MPU板级方案
  • 4 如何在虚拟机管理程序和多核框架之间进行选择
    • 以下是四个具体的 AMP 设计挑战
    • 虚拟机管理程序
    • 多核框架
      • 处理器间通信
      • 远程处理器生命周期管理
      • 多核框架——优点和缺点
  • 参考

1 介绍

1.1 概述

现代系统级芯片(SoC)正变得越来越复杂和多样化。一方面,这表明了将许多嵌入式系统功能整合到一个硬件中的趋势,另一方面,这也反映了对安全性和安全性要求的增加。

除了同质解决方案(即相同架构的多核CPU,例如x86),越来越多的异构多核CPU正在进入(嵌入式)市场。

在多核处理器上可以采用 虚拟机管理(如 QNX Hypervisor)、多核框架(如 OpenAMP)、虚拟机管理+多核框架组合策略。

openEuler Embedded 的运行模式

在这里插入图片描述
在不同模式下,openEuler Embedded始终是中心,提供富功能、富管理、富生态

openEuler Embedded 混合关键性系统技术架构

在这里插入图片描述
openEuler 24.03 LTS Embedded 版本:

  • 支持 5.10 和 6.6 双内核,嵌入式弹性底座 Jailhouse、openAMP 裸金属混合等部署方案。在嵌入式弹性底座之上打造了混合关键性部署框架 MICA,对下屏蔽不同底座的差异,对上为不同运行时提供统一的接口。
  • openEuler 24.03 LTS 嵌入式版本已经支持 600+软件包,包括支持 ROS humble 版本,满足 ROS2 运行时要求;支持 BMC 生态,包括 openBMC 等。
  • 硬件支持上新增飞腾、海思、瑞萨、德州仪器、全志等硬件的支持,提出了面向开发者的硬件开发板概念“Euler Pi”,并联合伙伴推出了一款 openEuler Embedded 原生开发板“HiEuler Pi”原型机系统。
  • 基础设施层面,正式发布 openEuler Embedded 元工具 oebuild,新增支持 LLVM 工具链构建 BSP 镜像,相对 GCC 工具链,可以获得在性能、体积、安全性等诸多方面的改进。

UniProton

在这里插入图片描述

1.2 同构异构区别 【硬件侧】

  • 同构
    所有的CPU的核心架构都一样,那么称为同构。例如,瑞芯微RK3568、飞思卡尔的I.MX6D,它们有两个或者以上架构相同的 ARM Cortex-A 核都属于同构。

  • 异构
    CPU核心架构有不一样的,就称为异构。例如 ST的 STM32MP157(两个 ARM Cortex-A7 + ARM Cortex-M4),TI的达芬奇平台DM6000系列(ARM9 + DSP)、Xilinx的Zynq7000系列(双核Cortex-A9 + FPGA)

1.3 系统架构【SMP、AMP、BMP】

多核处理器平台的系统架构 【软件侧】【SMP、AMP、BMP】

SMP(Symmetric MultiProcessing,对称多处理)架构
AMP(Asymmetric Multi-Processing,非对称多处理)架构
BMP(bound multi-processing,绑定多处理)架构

模型工作原理主要优势
非对称多处理(AMP)一个单独的操作系统,或相同操作系统的单独副本,管理每个核心。为每个软件进程提供类似于单处理器系统的执行环境,允许简单的遗留代码迁移。此外,允许开发者独立地管理每个核心。- 允许简单迁移遗留代码。- 开发者可以独立管理每个核心。- 每个软件进程锁定到单个核心(例如,进程A仅在核心1上运行,进程B仅在核心2上运行等)。
对称多处理(SMP)单个操作系统同时管理所有处理器核心。相比AMP,提供更大的可扩展性和并行性,以及更简单的共享资源管理。- 提供比AMP更大的可扩展性和并行性。- 操作系统可以动态地在任何核心上安排任何进程,实现所有核心的充分利用。
绑定多处理(BMP)单个操作系统同时管理所有核心。结合了AMP的开发者控制和SMP的透明资源管理。与SMP一样,操作系统可以动态地在任何核心上安排进程。但是,开发者也可以将任何进程(及其所有相关线程)锁定到特定核心。- 结合了AMP的开发者控制和SMP的透明资源管理。- 允许将线程锁定到任何核心,简化了遗留代码的迁移。- 允许设计者将特定操作专用于特定核心。

对称多处理架构

SMP结构下一个OS负责协调两个处理器,两个处理器共享内存,每个核运行的应用程序(APP1和APP2),通过MMU(内存管理单元)把它们映射到主存的不同物理位置上。
在这里插入图片描述

非对称多处理架构(AMP)

在这里插入图片描述

SMP在实时系统潜在的问题

  • 无法预测单个进程的执行顺序。
  • 无法预测哪个CPU 核执行哪个进程。
  • 对于某些进程,可能无法保证实时行为。
  • 如果从现有的单处理器设计移植到多处理器,可能会出现同步或互斥问题。
  • 业界已开发绑定多处理(BMP)以最大程度地减少此类问题。

非对称多处理器AMP的特点

  • 每个CPU内核执行专门的任务,操作与单处理器设计完全相同。
  • 系统的行为和可预测性与单处理器设计相似。
  • 如果软件针对特定类型的硬件设计,在非对称多处理器上使用异构AMP。
  • 在需要混合使用操作系统和/或调度方法的场景,在对称多处理器上使用同构AMP。
  • 所有方法都应提高性能为目标。
  • 安全是另外一个被考虑的因素。

1.4 虚拟化

嵌入式虚拟机化,能让多个系统同时在芯片上运行,利用实时系统和非实时系统的特性,来更好的实现软件功能。该技术知名的供应商有 QNX、Wind River VxWorks 等。
在这里插入图片描述
在这里插入图片描述

基础

虚拟化:创建某物的虚拟版本的行为,包括虚拟计算机硬件平台、存储设备和计算机网络资源。它允许在一个或多个处理器上部署多个操作系统和独立的工作负载。

虚拟机监视器(Hypervisor)

创建和运行虚拟机的计算机软件、固件或硬件。

虚拟化原因

  • 操作系统/工作负载整合
  • 降低系统成本
  • 降低功耗
  • 提高资源利用率

嵌入式虚拟机监视器需求

  • 短启动时间
  • 实时性
  • 低的、确定性的中断请求(IRQ)延迟
  • 实时调度器
  • 静态CPU分区
  • 设备虚拟化:设备分配、设备共享、驱动域
  • 安全性、隔离和分区:内存、设备、CPU、系统级配置寄存器(SLCRs)
  • 操作系统支持:Linux、裸机、其他实时操作系统(RTOS)支持
  • 认证:小型代码库

2 OpenAMP

概述

非对称多处理(AMP)。嵌入式异构硬件平台的数量急剧增加,以满足当今电子设备的多样化需求。这些需求从支持实时行为到提供丰富的用户界面(UI),因此需要具有不同能力的CPU来最佳地处理手头的任务。在软件方面,这是通过整合适合系统中CPU能力的不同的软件环境来实现的。不同的软件环境协同工作以提供所需的功能。这种合作通常涉及软件环境之间的通信启用以及系统资源的管理。开发此类系统需要AMP软件架构。

OpenAMP项目的一个重要组成部分是OpenAMP库,openAMP 框架可以与远程处理器上的实时操作系统(RTOS)或裸机(bare metal)环境结合使用,通过 remoteproc 和 RPMsg 组件与运行在主处理器上的 Linux 应用程序(在内核空间或用户空间)或其他基于 RTOS/裸机的应用程序进行通信。该架构可用于数据密集型应用。库的核心构建块是Remoteproc和RPMsg。它们分别提供资源管理和通信功能。

RPMsg 和 Remoteproc 基础设施最初由德州仪器(TI)构想并提交到Linux内核。该框架允许主处理器上的Linux操作系统管理远程处理器上的远程软件环境的生命周期并与之通信。

  • 使用 remoteproc 进行生命周期管理以便于控制启动顺序等
  • 使用 RPMsg 进行核心间通信。

在这里插入图片描述

部署方案

在这里插入图片描述
在这里插入图片描述

3 示例

工业自动化中的集成

在这里插入图片描述

多核SoC中应用的概念分配

  • OpenAMP for messaging

在这里插入图片描述
在这里插入图片描述

嵌入式实时虚拟机ZVM【湖大嵌入式实验室 2 openEuler】

嵌入式实时虚拟机ZVM(Zephyr-based Virtual Machine)是由湖南大学嵌入式与网络计算湖南省重点实验室(以下简称"湖大嵌入式实验室")主任谢国琪教授主导设计并开发的虚拟化软件。该软件基于实时操作系统(RTOS)Zephyr开发,可同时启动Linux与Zephyr 2个Guest OS,从而在同一硬件平台上实现混合内核部署。

2023年2月,湖大嵌入式实验室正式将该项目开源至openEuler社区。
在这里插入图片描述

海思工业硬实时通用MPU板级方案

在这里插入图片描述

4 如何在虚拟机管理程序和多核框架之间进行选择

以下是四个具体的 AMP 设计挑战

  • 该设计很可能需要核心间通信。
  • 出于安全和保障问题考虑,可能需要对核心进行相互保护。
  • 启动顺序(每个核心上的软件启动的顺序)需要避免同步和安全问题。
  • 调试通常在异构核心上运行的不同工作负载会带来一些问题。

AMP 系统中的核心是独立的,但这些挑战需要一些整体控制设施。有两种选择:

  • 虚拟机管理程序:在所有核心上运行的复杂软件组件;
  • 多核框架:使 AMP 系统能够在每个核心上运行的软件组件。

虚拟机管理程序

优点:

  • 极大的灵活性,实现虚拟机之间高效的资源共享、动态资源使用、低延迟和高带宽通信;
  • 强大的核心间分离;
  • 实现设备虚拟化和共享;
  • 将外围设备的所有权分配给特定核心。

缺点:

  • 仅适用于同质多核设备(即,所有核心都相同);
  • 大量的代码占用空间;
  • 一些执行开销;
  • 需要处理器支持硬件虚拟化

多核框架

由于虚拟机管理程序具有分离、管理和共享功能,因此它提供的功能超出了许多嵌入式设计的需求,它们可能有些过度。因此,一些嵌入式运行时供应商开发了一种专门为支持 AMP 多核系统而设计的替代方案:多核框架。

框架专门为支持多核应用而设计,仅提供关键功能:启动顺序控制和内核间通信。框架以更低的开销加载系统,并可在更基本的系统上运行。尽管 AMP 设计中的每个内核可能都运行一个操作系统,但一个或多个内核可能是裸机(即根本不运行操作系统)。多核框架可以适应这种可能性。

处理器间通信

一旦远程处理器操作系统和应用程序堆栈开始运行,许多用例将需要与系统的其他部分进行通信。Mentor嵌入式多核框架(MEMF) 提供了远程处理器消息传递框架功能 (RPMsg) 的洁净室实现,该功能在主操作系统和远程操作系统之间建立了通信通道。因此,数据可以在处理器间通信 (IPC) 通道中在两者之间来回传递。

支持远程处理器生命周期管理和 IPC 的传输层是 VirtIO,它是虚拟化 Linux 环境中广泛采用的高性能输入/输出设备驱动程序的虚拟化标准。

远程处理器生命周期管理

控制远程处理器,然后启动或停止该远程处理器内的操作系统和/或应用程序堆栈,这被称为远程处理器 (remoteproc) 生命周期管理。Linux 社区已采用一个框架来管理这种情况。Remoteproc 允许主操作系统在其他核心上启动其他操作系统。

Mentor Embedded Multicore Framework 中的 remoteproc 功能允许 Mentor Embedded Linux、Nucleus RTOS 和裸机环境 (BME) 以及其他供应商的 Linux 和 RTOS 产品之间实现远程处理器互操作性。remoteproc 生命周期管理的一个主要优点是它可以降低功耗。远程核心在不使用时保持低功耗状态。只有在使用 remoteproc 启动远程核心并部署必要的固件后,远程核心才会消耗任何明显的电量。

多核框架——优点和缺点

优点:

  • 为某些应用程序提供最低限度所需的功能;
  • 内存占用适中;
  • 最小的执行时间开销;
  • 可在异构多核设备上工作(即,所有核心不需要相同);
  • 支持裸机应用程序。

缺点:

  • 核心工作负载彼此之间并非隔离的;
  • 更难控制启动顺序;
  • 调试起来更加困难。

参考

1、Multi-Core_Hypervisor
2、Heterogeneous Real-Time SoC Software Architecture
3、Hypervisors in Embedded Systems
4、Study and Implementation of Modular Software Architectures based on Hypervisors for Automotive Electronic Control Units
5、OpenAMP Framework
6、西门子数字工业软件嵌入式平台–如何在虚拟机管理程序和多核框架之间进行选择
7、Enabling the Full Power of a Multiprocessor SoC
8、Linaro BKK 2019 Evensen Keynote v1
9、Leveraging OpenAmp in Embedded Mixed-Safety Critical Systems
10、何小庆文章
11、何小庆–多核处理器与实时操作系统- 概述、原理和应用实例
12、Running AMP, SMP or BMP Mode for Multicore Embedded Systems QNX Software Systems
13、多核处理器与MP架构
14、openEuler开源新项目,嵌入式实时虚拟机ZVM介绍 | 湖大嵌入式实验室
15、海思工业硬实时通用MPU板级方案
16、OpenEuler–实时内核UniProton及其混合关键性部署的实践
17、四大升级!助力首个 AI 原生开源操作系统 openEuler 24.03 LTS 正式发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/23885.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

前端进阶之HTML表单

前端之HTML表单 1.HTML表单的定义及概述 HTML 表单用于搜集不同类型的用户输入。 用<form> 元素定义HTML表单 例如&#xff1a; <form>. form elements. </form>1.1 HTML 表单包含表单元素&#xff1a;表单元素指的是不同类型的 input 元素、复选框、单…

探索Adobe XD:高效UI设计软件的中文入门教程

在这个数字化世界里&#xff0c;创意设计不仅是为了吸引观众的注意&#xff0c;也是用户体验的核心部分。强大的设计工具可以帮助设计师创造出明亮的视觉效果&#xff0c;从而提高用户体验。 一、Adobe XD是什么&#xff1f; Adobe XD是一家知名软件公司 Adobe Systems 用户体…

海南聚广众达电子商务咨询有限公司引领抖音电商新风尚

在数字化浪潮汹涌澎湃的今天&#xff0c;电商行业正迎来前所未有的发展机遇。作为电商领域的一颗璀璨明星&#xff0c;海南聚广众达电子商务咨询有限公司凭借其专业的抖音电商服务&#xff0c;成功吸引了众多商家的目光&#xff0c;成为了业界的一匹黑马。 海南聚广众达电子商…

【全开源】CRM管理客户关系系统源码

CRM&#xff1a;助力企业高效管理客户关系 全面解决企业销售团队的全流程客户服务难题&#xff0c;旨在助力企业销售全流程精细化、数字化管理&#xff0c;全面解决企业销售团队的全流程客户服务难题&#xff0c;帮助企业有效盘活客户资源、量化销售行为&#xff0c;合理配置资…

vue2+elementui,动态生成的表单校验

话不多,先上一段视频,看看是不是你们需要的效果 elementui动态生成表单校验 附上代码 <template><div class"home"><div class"home-box"><!-- <menuHtml></menuHtml> --><div class"home-div"><…

k8s AIOps

k8s AIOps 主要介绍下k8sgpt 官站 github 介绍 k8sgpt 是一个用于扫描Kubernetes集群、诊断和分级问题的工具。它以简单的英语呈现问题&#xff0c;并将站点可靠性工程&#xff08;SRE&#xff09;的经验编码到其分析器中。通过AI丰富问题的解释&#xff0c;k8sgpt帮助提取最…

【C++】初识C++

【C】初识C 文章概括关键字&#xff08;C98&#xff09;命名空间命名空间的定义命名空间的特性 输入与输出C中的输入输出输入输出的命名空间 缺省参数函数重载引用引用的概念引用的特性引用地使用场景引用做参数引用做返回值 常引用常引用的俩个例子 引用与指针的区别 内联函数…

web端中使用vue3 实现 移动端的上拉滚动加载功能

需要再web端实现上拉加载 纯属web端的东西 类似这样的功能效果 能够在web端实现滚动分页 overflow-y: scroll;首先给这个大盒子 一个 css 样式 支持滚动 再给固定高度 这个盒子里的内容就能立马滚动起来 给这个盒子一个ref 的属性 以及 有原生滚动事件 scroll const handle…

通过龙讯旷腾PWmat发《The Journal of Chemical Physics》 :基于第一性原理分子动力学热力学积分的离子溶剂化自由能计算

背景导读 离子溶解是电化学中一个重要的过程。电化学反应中许多重要的参数&#xff0c;例如电化学还原电位、无限稀释活度系数、亨利定律溶解常数和离子溶解度等&#xff0c;都与离子的溶剂化能有关。然而&#xff0c;由于测量技术和数据处理的困难&#xff0c;离子溶剂化能的…

vCenter7.0安装部署

vCenter7.0安装部署 一、准备环境二、创建新的虚拟机1.创建虚拟机2.第3-5步可直接默认安装并同意许可协议。3.其他设置4.第一阶段直接点完成即可 三、进入第二阶段安装&#xff08;输入ip&#xff1a;5480进入安装界面&#xff09; 一、准备环境 准备一台exsi&#xff0c;并登…

MySQL之查询性能优化(九)

查询性能优化 MySQL查询优化器的局限性 UNION的限制 有时&#xff0c;MySQL无法将限制条件从外层"下推"到内层&#xff0c;这使得原本能够限制部分返回结果的条件无法应用到内层查询的优化上。如果希望UNION的各个子句能够根据LIMIT只取部分结果集&#xff0c;或者…

项目沟通管理

目录 1.概述 2.项目沟通的重要性和必要性 2.1.项目沟通的重要性 2.2.项目沟通的必要性 2.3.具体措施 3.三个过程 3.1.规划沟通管理 3.2.管理沟通 3.3.监督沟通 3.4.对应过程组 4.应用场景 4.1.十个应用场景 4.2.新产品开发项目需要与多个部门协调沟通 5.总结 1.概…

调节效应多元统计回归

什么是调节效应&#xff0c;给个例子说明一下: 背景 假设我们有一个国家的经济数据&#xff0c;我们希望研究产业数字化是否调节了环境规制对产业结构调整的影响。 步骤 1. 假设检验 原假设 (H0)&#xff1a; 产业数字化对环境规制与产业结构调整之间的关系没有调节作用。…

银河麒麟V10_系统如何自定义添加桌面右键菜单选项

本篇博客取自《银河麒麟桌面操作系统软件适配常见问题指导手册》官网可以下载。 环境 系统版本 适用系统&#xff1a;V10&#xff08;SP1&#xff09;适用架构&#xff1a;X86、ARM、MIPS 其他版本和架构可做参考。 解决方案 使用下面的这个demo 编译就可以看到效果 peony…

每日一题——Python实现PAT甲级1063 Set Similarity(举一反三+思想解读+逐步优化)

一个认为一切根源都是“自己不够强”的INTJ 个人主页&#xff1a;用哲学编程-CSDN博客专栏&#xff1a;每日一题——举一反三Python编程学习Python内置函数 Python-3.12.0文档解读 目录 我的写法 优点 改进建议 时间复杂度分析 空间复杂度分析 总结 我要更强 优化方…

【C语言】指针(4)

一、回顾 在这之前&#xff0c;我们学习了很多关于指针的内容&#xff0c;我们先在这里简单的回顾一下。 1、一级指针 int* p; -- 整形指针-指向整形的指针 char* p; ... void* p;... ... 2、二级指针 int** p; char** p; ... 3、数组指针 -- 指向数组的指针 int (*p)[ ]…

3038. 相同分数的最大操作数目 I(Rust模拟击败100%Rust用户)

题目 给你一个整数数组 nums &#xff0c;如果 nums 至少 包含 2 个元素&#xff0c;你可以执行以下操作&#xff1a; 选择 nums 中的前两个元素并将它们删除。 一次操作的 分数 是被删除元素的和。 在确保 所有操作分数相同 的前提下&#xff0c;请你求出 最多 能进行多少次…

Python | Leetcode Python题解之第136题只出现一次的数字

题目&#xff1a; 题解&#xff1a; class Solution:def singleNumber(self, nums: List[int]) -> int:return reduce(lambda x, y: x ^ y, nums)

Vue07-MVVM模型

一、MVVM模型的定义 M&#xff1a;模型&#xff08;model&#xff09;&#xff1a;对应data中的数据&#xff1b;V&#xff1a;视图&#xff08;view&#xff09;&#xff1a;模版&#xff1b;VM&#xff1a;视图模型&#xff08;ViewModel&#xff09;Vue的实例对象。 Vue.js…

WSDM2022推荐系统相关论文整理(一)

2022年第15届国际网络搜索与数据挖掘会议WSDM在2022年2月21日到25日于线上举行&#xff0c;共收到了786份有效投稿&#xff0c;最终录取篇数为159篇&#xff0c;录取率为20.23%。作为主流的搜索与数据挖掘会议&#xff0c;论文的话题主要侧重于搜索、推荐以及数据挖掘领域&…