当前位置: 首页 > news >正文

嵌入式开发:通过嵌入式虚

  嵌入式虚拟化为实现多核处理能力的优势提供了一种可扩展的机制。嵌入式应用中的虚拟化与其企业和桌面应用有许多共同之处。独特的嵌入式使用案例和专业的底层技术为嵌入式开发人员提供了优化性能和响应设计的新机会。

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

  台式机和数据中心的主流多核需要部署的操作系统(OS)提供对称多处理(SMP)支持。Linux内核支持SMP已经快十年了,支持SMP的Windows和Mac OS版本如今也在广泛使用。

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

  虚拟化软件架构

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

  

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

  在移动设备中,原始设备制造商使用裸机虚拟化来整合多个CPU,以便在单个CPU上运行基带、多媒体和应用堆栈以及各种操作系统(一个或多个虚拟机中运行Android或Linux,另一个虚拟机中运行RTOS ),从而节省材料成本。

  走向多核

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

  随着RTOS供应商开始创造他们产品的多核版本,他们经常使用多核芯片中内核负载的静态映射。一些嵌入式虚拟化平台需要静态分配虚拟机管理程序及其托管和运行的负载

  物理芯片到虚拟化负载的静态映射效率低下,无法提供虚拟化带来的优势。在嵌入式开发中,更有效的方法是为每个操作系统配置一个虚拟CPU,该虚拟CPU可以映射到单个CPU(一对一),共享一个CPU(多对一),或者分布在多个内核上(一对多)。

  负载平衡

  今天的联网设备——手机、机顶盒、车载系统、网络设备和几乎任何类型的智能设备——都是应用程序平台,其负载像台式计算机、数据中心刀片和服务器一样复杂多样。多核CPU承诺现代嵌入式软件的高吞吐量和敏捷响应,但预测负载和内核利用率超过了集成不同来源软件的过程,特别是来自应用商店的软件。

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

  

  多核电源管理

  多核系统可能会给针对单核系统优化的电源管理方案带来巨大挑战。特别是,许多多核片上系统(SOC)对动态电压和频率缩放(DVFS)的范围和能力有限制:

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

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

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

  l 有些操作完全使用内核或根本不使用内核,但其他操作会施加不同的负载。全有或全无的使用很容易管理,但多核上的动态负载会带来更大的电源管理挑战。

  现在添加多个操作系统。在嵌入式开发中,高级操作系统通常包括DVFS电源管理,如Linux高级电源管理和动态电源管理,以及Windows/BIOS高级配置和电源接口。大多数RTOS避免限制实时响应的操作,当它们提供明确的电源管理API时,如vxLib的vxPowerDown(),它们缺乏电源管理策略。即使一个操作系统能够管理其自身域中的电源,它也不会意识到同一系统中其他操作系统的能力和状态。

  DVFS通过降低电压和时钟频率来提高能效。支持DVFS的CPU在固定的电压和频率下提供安全的工作点。

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

  

  多核基带

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

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

  只有虚拟化可以扩展

  多核软件设计比看起来更复杂也更简单。系统架构师应该抵制诱惑,不要将传统软件元素大规模分配给下一代嵌入式芯片上的可用内核。

  处理器路线图表明可用处理器内核将进一步倍增:如今嵌入式CPU的内核数将增加2倍,很快将增加4倍、8倍甚至更多。这种芯片过剩将很快超过供应和管理多核软件负载的静态方法。

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

相关文章:

嵌入式开发:通过嵌入式虚

嵌入式虚拟化为实现多核处理能力的优势提供了一种可扩展的机制。嵌入式应用中的虚拟化与其企业和桌面应用有许多共同之处。独特的嵌入式使用案例和专业的底层技术为嵌入式开发人员提供了优化性能和响应设计的新机会。在台式机、数据中心以及现在的嵌入式设计中采用多核技术可以…...

广州穗雅医院杨济安:了解症状表现 有效防治口腔黏膜下纤维化

“医生,我出现口干大半年时间,最近两月张嘴费劲,吃点辣的,嘴就刺疼刺疼的,这是怎么回事?”半年前,家住南沙的文先生走进广州穗雅医院口腔黏膜科如是说到。在科室杨济安主任的详细问诊与检查后&a…...

[数据分析] 数据指标体系搭建

在数据分析的学习过程中,我们通常会要求掌握以下两点: 1.理解数据,懂得从数据中发现业务指标(学会如何去看懂数据) 2.使用相关指标去分析数据,同时使用多个指标去分析一个问题(了解常见的指标) 当我们拿到数据(通常以Excel或者数据库方式去…...

Dubbo 源码分析 – 集群容错之 Cluster

3.2.2 FailbackClusterInvoker FailbackClusterInvoker 会在调用失败后&#xff0c;返回一个空结果给服务提供者。并通过定时任务对失败的调用进行重传&#xff0c;适合执行消息通知等操作。下面来看一下它的实现逻辑。 public class FailbackClusterInvoker<T> extend…...

Spring学习20230208-09

IOC底层原理 IOC概念 &#xff1a;面向对象编程中的一种设计原则&#xff0c;用来降低耦合度 通过控制反转&#xff0c;对象在被创建的时候&#xff0c;由一个调控系统内所有对象的外界实体将其所依赖的对象引用传递给他。可以说&#xff0c;依赖被注入到对象中。控制反转&…...

tomcat10部署报错WebStatFilter cannot be cast to jakarta.servlet.Filter

异常信息09-Feb-2023 23:08:49.946 严重 [main] org.apache.catalina.core.StandardContext.filterStart 启动过滤器异常[DruidWebStatFilter]java.lang.ClassCastException: com.alibaba.druid.support.http.WebStatFilter cannot be cast to jakarta.servlet.Filterat org.ap…...

Linux修改文件时间或创建新文件:touch

每个文件在Linux下面都记录了许多的时间参数&#xff0c;其实是三个主要的变动时间 修改时间&#xff08;modification time&#xff0c;mtime&#xff09;&#xff1a;当该文件的【内容数据】变更时&#xff0c;就会更新这个时间&#xff0c;内容数据是指文件的内容&#xff…...

原生微信小程序按需引入vant

vant Vant Weapp - 轻量、可靠的小程序 UI 组件库 1.npm安装 找到项目根目录 安装 # 通过 npm 安装 npm i vant/weapp -S --production# 通过 yarn 安装 yarn add vant/weapp --production# 安装 0.x 版本 npm i vant-weapp -S --production 2 .修改 app.json 将 app.jso…...

高性能IO模型:为什么单线程Redis能那么快?

我们通常说Redis是单线程&#xff0c;主要是指Redis的网络IO和键值对读写是由一个线程来完成的。这也是Redis对外提供键值存储服务的主要流程。 但redis的其他功能&#xff0c;比如持久化、异步删除、集群数据同步等&#xff0c;其实是由额外的线程执行的。 Redis为什么用单线…...

【数据集】中国各类水文专业常用数据集合集

1 水文气象数据 1.1 中国站点尺度天然径流量估算数据集&#xff08;1961&#xff5e;2018年&#xff09; 论文&#xff1a; J2022-High-quality reconstruction of China’s natural streamflow-缪驰远&#xff08;北京师范大学地理科学学部&#xff09; 研究内容&#xff1a…...

落枕、肩颈酸痛,用磁疗就可缓解!

睡觉之前还是好好的&#xff0c;一觉醒来脖子莫名疼痛&#xff0c;转都转不了&#xff0c;有时候连肩膀和上肢都难受&#xff0c;很可能是“落枕”了。 落枕引起的肩颈疼痛与多种因素有关&#xff0c;如颈肩部肌肉的过度使用、不良的睡眠姿势或颈肩部受寒湿空气的侵袭&#xff…...

一文教会你如何选择远程桌面(五大主流远程软件全面讲解)

写在前面 作为程序员的我们&#xff0c;随时随地写代码改代码是我们的日常。刚回到家&#xff0c;就被老板、产品经理cue是常有的事。基于这种情况&#xff0c;一般都会随身携带电脑&#xff0c;随时备战&#xff0c;不过每天背着电脑上下班非常不方便。因此资深程序员的解决方…...

【yolov5】yolov5训练自己的数据集全流程----包含本人设计的快速数据处理脚本

关于yolo应用时能用到的脚本集合&#xff0c;推荐收藏&#xff1a; https://chenlinwei.blog.csdn.net/article/details/127299428 1. 工程化快速yolo训练流程指定版&#xff08;无讲解&#xff09; 1.1 抽样数据集xml转txt输出量化分析 python make_dataset.pymake_dataset…...

leaflet 加载CSV数据,显示图形(代码示例046)

第046个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+leaflet中加载CSV文件,将图形显示在地图上。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果; 注意如果OpenStreetMap无法加载,请加载其他来练习 文章目录 示例效果配置方式示例源代码(共74…...

百趣代谢组学资讯:槟榔的基因组为雌雄同株植物的性别决定提供见解

文章标题&#xff1a;The genome of Areca catechu provides insights into sex determination of monoecious plants 发表期刊&#xff1a;New Phytologist 影响因子&#xff1a;10.323 作者单位&#xff1a;海南大学 百趣生物提供服务&#xff1a;植物激素高通量靶标定…...

SSO单点登录 - 多系统,单一位置登录,实现多系统同时登录 学习笔记

(1)单点登录 多系统的前提下&#xff0c;单一位置的登录&#xff0c;会实现多系统同时登录的一种技术。 常出现在互联网应用和企业级平台中 如&#xff1a;京东 单点登录一般是用于互相授信的系统&#xff0c;实现单一位置登录&#xff0c;全系统有效的。 注意&#xff1a…...

图解LeetCode——剑指 Offer 32 - III. 从上到下打印二叉树 III

一、题目 请实现一个函数按照之字形顺序打印二叉树&#xff0c;即&#xff1a;第一行按照从左到右的顺序打印&#xff0c;第二层按照从右到左的顺序打印&#xff0c;第三行再按照从左到右的顺序打印&#xff0c;其他行以此类推。 二、示例 2.1> 示例1 提示&#xff1a; …...

【快排与归并排序算法】

作者&#xff1a;指针不指南吗 专栏&#xff1a;算法篇 &#x1f43e;或许会很慢&#xff0c;但是不可以停下&#x1f43e; 文章目录一、快速排序 ( Quick Sort )二、归并排序 ( Merge Sort )总结一、快速排序 ( Quick Sort ) 1.思路 找出一个分界点&#xff0c;随机的调整区间…...

面试官问我:说说你对JMM内存模型的理解?为什么需要JMM?

点个关注&#xff0c;必回关 随着CPU和内存的发展速度差异的问题&#xff0c;导致CPU的速度远快于内存&#xff0c;所以现在的CPU加入了高速 缓存&#xff0c;高速缓存一般可以分为L1、L2、L3三级缓存。基于上面的例子我们知道了这导致了缓存一致 性的问题&#xff0c;所以加入…...

工程管理系统源码之提高工程项目管理软件的效率

高效的工程项目管理软件不仅能够提高效率还应可以帮你节省成本提升利润 在工程行业中&#xff0c;管理不畅以及不良的项目执行&#xff0c;往往会导致项目延期、成本上升、回款拖后&#xff0c;最终导致项目整体盈利下降。企企管理云业财一体化的项目管理系统&#xff0c;确保…...

SpringBoot集成xxl-job实现

SpringBoot集成xxl-job实现 一、xxl-job介绍 xxl-job是一个分布式任务调度平台&#xff0c;核心设计目标是开发迅速、学习简单、轻量级、易扩展。源码&#xff1a;下载地址编译环境&#xff1a;Maven3、Jdk1.8、MySQL5.7 二、调度中心 初始化调度数据库&#xff0c;执行指定…...

欧几里得度量和余弦度量的可取消生物识别方案

欧几里得度量和余弦度量的可取消生物识别方案 便捷的生物识别数据是一把双刃剑&#xff0c;在为生物识别认证系统的繁荣铺平道路的同时&#xff0c;也带来了个人隐私问题。为了缓解这种担忧&#xff0c;提出了各种生物特征模板保护方案来保护生物特征模板免于信息泄露。现有提案…...

平板作为主机扩展屏的实现

网上有许多教程使用平板作为电脑的拓展屏&#xff0c;但是多数都是需要在电脑和平板上都装上服务器和客户端的软件才行&#xff0c;而且有些系统还没有对应的软件。 那有没有一种方法只需要在主机上运行一个软件&#xff0c;而平板上只需要扫个码就行呢&#xff1f; 答案是当然…...

HTTP和HTTPS有什么区别?如何实现网站的HTTPS?

细心的朋友会发现&#xff0c;我们在浏览网站时&#xff0c;有的网址以http开头&#xff0c;而有的网站却以https开头&#xff0c;那这两者之间有什么区别吗&#xff1f;http的网站如何能变成https呢&#xff1f;本文中科三方针对这个问题做下简单介绍。 什么是http&#xff1…...

Rockstar Games遭黑客攻击,《侠盗猎车手6》90个开发视频外泄

当地时间9月19日&#xff0c;视频游戏开发商Rockstar Games证实&#xff0c;其 热门游戏《侠盗猎车手6》&#xff08;Grand Theft Auto&#xff09;开发片段遭到黑客大规模窃取 &#xff0c;这一泄露事件立即在游戏圈迅速传播。 据报道&#xff0c; 上周末黑客至少泄露了90个游…...

RabbitMQ-客户端源码之AMQPImpl+Method

AMQPImpl类包括AMQP接口&#xff08;public class AMQImpl implements AMQP&#xff09;主要囊括了AMQP协议中的通信帧的类别。 这里以Connection.Start帧做一个例子。 public static class Connection {public static final int INDEX 10;public static class Startextends…...

雅思经验(7)

我发现雅思阅读要命的不是难度&#xff0c;而是时间的把控。考试时间是总共一小时&#xff0c;但是要写三篇文章&#xff0c;之后总共40道题目&#xff0c;也就是说每篇文章平均是13.3道。但是他们很多人说&#xff0c;如果誊写答案需要花掉3、4分钟每篇&#xff0c;也就是说真…...

Ubuntu20.04 用 `hwclock` 或 `timedatectl` 设置RTC硬件时钟为本地时区

Ubuntu20.04用 hwclock 或 timedatectl 设置硬件时区为本地时区 可以用hwclock命令 sudo hwclock --localtime --systohc&#x1f446;效果等同&#x1f447; , --localtime的简写是-l ; --systohc的简写是-w sudo hwclock -l -w也可以用timedatectl命令 &#x1f446;效果等…...

大学物理·第15章【量子物理】

黑体 斯特藩玻耳兹曼定律 维恩定律 光电效应 在光照射下 &#xff0c;电子从金属表面逸出的现象&#xff0c;叫光电效应. 逸出的电子&#xff0c;叫光电子 经典理论&#xff1a; 光电流值与入射光强成正比截止频率&#xff08;红限&#xff09;v0对某种金属来说&#xff0c;只有…...

2010-2019年290个地级市经济发展与城市绿化数据

2010-2019年290个地级市经济发展与城市绿化数据 1、时间&#xff1a;2010-2019年 2、来源&#xff1a;城市统计NJ&#xff0c;缺失情况与NJ一致 3、范围&#xff1a;290个地级市 4、指标&#xff1a; 综合经济&#xff1a;地区生产总值、人均地区生产总值、地区生产总值增…...

网络营销是什么的基础选择题/网站seo报告

string str"abc"; string().swap(str); 转载于:https://blog.51cto.com/tinyweb/982623...

苏州做网站费用/近期国内新闻

这里有一篇很棒的文章写如何在Android上获取流畅的签名&#xff1a;Smoother Signatures&#xff0c;但是我没有找到一篇是写在iOS上如何实现。那么&#xff0c;究竟怎么做才能在iOS设备上获取用户的签名呢&#xff1f; 虽然我没有找到任何关于获取签名的文章&#xff0c;但是在…...

商城网站制作教程/大数据分析培训机构

地球更智慧&#xff0c;人类怎么办?阿祥(比特网)2008年已经过去&#xff0c;IBM给世界留下了一个想象&#xff0c;也是一个方向&#xff0c;那就是“智慧地球”。早有10年前的1998年1月31日&#xff0c;美国副总统戈尔在加利福尼亚科学中心放出惊人之论&#xff0c;第一次提出…...

网站专题页面设计欣赏/优秀的软文广告案例

注解相关 AliasFor&#xff1a;.在同个注解中为同一个功能定义两个名称不一样的属性&#xff0c;那么这两个属性彼此互为别名 RequestMapping注解里面的代码 AliasFor("path")String[] value() default {};AliasFor("value")String[] path() default {};G…...

晚上必看的正能量直播app/武汉seo招聘网

简介 免费开源,面向对象的轻量级PHP开发框架,实现懒性加载,灵活的路由,依赖注入,请求缓存,查询语法,支持Composer. Git安装: git clone https://github.com/top-think/think 再 clone https://github.com/top-think/framework 将名称改为thinkphp 运行环境: PHP > 5.4.0 &…...

外贸网站建设费用/app开发自学

一、按键灯的简介最近调试一下按键灯&#xff0c;今天抽空顺便把的流程分析了一下。按键灯也是一种led,它的使用规则如命名一样&#xff0c;当按键按下亮灯&#xff0c;如果一定时间不操作的话&#xff0c;一会会灭灯。其实这里的按键灯亮灭策略通常不是驱动来完成的&#xff0…...