多核CPU和单核的区别~

article/2025/8/23 16:16:10

220be8f5fb3d06b40f863a30f9e8d1df.png

昨天有同学问我多核cpu和单核的区别大不大,今天简单写一篇回复下吧。大家有其他问题也可以文末给我留言,我会尽量抽时间写文回复。

首先回顾下基本概念,cpu,就是中央处理器,包括运算器和控制器。cpu的主要功能就是“一行一行的执行代码”。所以大家可以把cpu看成是医院的医生诊室,在一定时间内执行一行代码(给一个病人诊断治疗)。

所以单核cpu就是,代码经过前面一系列的前导操作(类似于医院挂号),然后到cpu处执行时发现,就只有一个cpu,大家排队执行。(类似于10个挂号窗口挂号,结果跑到医生那只有一个医生,只能排队等)。

这时候想要提升系统性能,只有两个办法,要么提升cpu性能(让医生看病快点),要么多加几个cpu(多整几个医生)。

多年前英特尔奔腾年代不断提升主频,就是提升cpu性能的思路。那个时候正是我读大学的时候,配电脑就是分析主频,秀操作就是超频。还有人搞什么液氮冷却超频……

后来主频实在玩不下去了,因为随着主频提升对工艺要求,EMI/EMC要求,发热量等要求太高,扛不住了,所以不得不转换思路,开始研究多核这条路了(一个医生已经007了,实在受不了了,不得不多配几个医生了)。

于是乎整起了多核心,多个cpu同步运行指令,这速度就起来了。多核还有两种不同思路,一种叫对称多核心,就是多个核心是完全相同的,譬如4核cortex-a53,这样的4个核心都是同一种内核a53,这种术语叫SMP。还有另一种就是多个核心不一样,譬如stm32mp157,内置2个cortex-a7,1个cortex-m4核心,所以它内部是有a7和m4两种不同类型的核心的,这种术语叫AMP。

一般经常说到的多核问题都是SMP的多核问题,amp这种析构多核大多数人还不太接触。我们今天主要是想说说smp。我从以下几个问题角度来讲一下。

1.多核的效率是单核的倍数吗?

譬如4核A53的cpu,性能是单核A53的4倍吗?理论上是,但是实际不可能,至少有两方面的损耗。

一个是多个核心的其他共用资源限制。譬如内存,你换了4核cpu难道内存也会加4倍吗?譬如cache,4核cpu的cache也是4倍设计吗?譬如寄存器,每个内核的寄存器都是独立的单核倍数设计吗?这就好像医院一样,1个医生换4个医生,但是做B超检查的还是一台机器,性能瓶颈就从医生转到B超检查了,不可能性能提升4倍的。

另一个是多核cpu之间的协调管理损耗。譬如你有4个任务要执行,怎么评论分配给多个cpu核心,避免那种“旱的旱死,涝的涝死”的情况,这就是所谓负载均衡的问题,在支持多核的os调度器设计时要考虑的。譬如多个核心同时运行两个相关的任务,需要考虑任务同步的,这也需要消耗额外性能。

这就好像公司工作一样,一个人的时候至少不用开会浪费时间,自己跟自己商量就行了。两个人就要开会同步工作,协调分配,所以工作效率绝对不可能达到2倍。要是几千几万人呢?那一天工作8小时有6小时在开会,干活时间只有30%不到了。

但是多核心宏观上总是提升了系统总体性能的,这就好像公司,团队人多了对外输出能力总是更强的(管理不失水准情况下)。所以SMP是目前提升系统性能的一种主流思路。

2.多核在编程上有区别吗?

如果你是做操作系统底层开发移植,那么多核和单核是有区别的,这个大家不妨去看看一些SMP SOC的Linux kernel源码就知道了,在我们经常分析的head.S中就有不少处理smp相关的代码。

但是如果你是做应用层开发,那对你来说区别很小了。

现在崇尚大家用多线程编程,也是因为SMP的硬件成为主流了,编程时把工作分开到多个线程中,这样调度器就可以将他们同时调度到多个cpu去运行,就可以提升系统性能,让你感觉到软件运行速度更快了。所以多线程编程要注意同步和临界区问题等,也都是并行运行带来的。

d7e776f0b6e0a7b0a76cd23005bfe8c3.png

1.STM32U5,意法半导体新打造的超低功耗MCU旗舰版

2.【例说Arm-2D界面设计】从不规则图标的显示说起

3.STM8CubeMX和STM32CubeMX功能一样吗?

4.这九种情况下的单片机项目尽量不要接~

5.偷偷把室友的STM32换成了GD32后。。。

6.剖开苹果A15芯片,看看die的布局!

77123f07264daa05f770d192f38e13e6.gif

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。


http://chatgpt.dhexx.cn/article/ZNZVqwYe.shtml

相关文章

多核处理器结构

文章目录 一、多核处理器的发展演化二、多核处理器的访存结构2.1 通用多核处理器的片上Cache结构2.2 存储一致性模型2.3 Cache一致性协议 三、多核处理器的互连结构3.1 片上总线3.2 交叉开关3.3 片上网络 四、多核处理器的同步机制4.1 原子操作4.2 锁的软件实现方法4.3 屏障软件…

关于 CPU 的多核和超线程技术

1. 关于 CPU 的多核和超线程技术 CPU 的物理个数由主板上的插槽数量决定,每个 CPU 可以有多核心,每核心可能会有多线程。 多核 CPU 的每核(每核都是一个小芯片),在 OS 看来都是一个独立的 CPU。 对于超线程 CPU 来说,每核 CPU …

手机的开机流程分析(pmic角度)

【前言】 电源是手机soc必不可缺的部分之一,那么开机的过程是怎么样的呢,接下来我会从硬件角度分析。 【开机源】

RK3588 PMIC/Power电路 PCB 设计指南

以下为RK3588 电源各供电电路 PCB 设计指南。 1、VDD_LOGIC,VDD_GPU,VDD_NPU,VDD_CPU电源的 DC-DC 远端反馈设计。 100ohm反馈电阻需要靠近输出电容放置,电阻一端连接到 DC-DC 输出电容,另一端连接到PMIC 的VOUT 反馈脚…

linux电源管理配置,Exynos 4412 电源管理芯片PMIC 的配置及使用方法

开发板:迅为4412精英版。 uboot:uboot-2014-10。 PMIC:SAMSUNG S5M8767A 在移植新版u-boot的时候,上网搜电源管理芯片的使用方法资料,发现几乎没有,就算是datasheet也很难下载得到,不知是何原因…

RK3399平台开发系列讲解(电源管理篇)11.10、PMIC(生产者)驱动数据结构体

平台内核版本安卓版本RK3399Linux4.4Android7.1🚀返回专栏总目录 文章目录 一、结构描述二、约束结构三、初始化数据结构四、配置结构五、设备操作结构沉淀、分享、成长,让自己和他人都能有所收获!😄 📢Linux调节器框架设计用于连接和控制电压和电流调节器。它分为以下…

camera 添加外挂pmic进行供电的涉及

凡是多问几个为什么? 当今camera设计为什么越来越喜欢用外接的pmic? 很多大厂的camera都用到了wl2864,wl2868这样的外接pmic芯片,为什么套片上自带的pmic在已经比较充足的情况下依然加大成本还要这样做呢? 在一个典…

SOC电源管理系统PMIC

SOC电源管理系统 版权声明: 本文作者: 烓围玮未 首发于知乎专栏:芯片设计进阶之路 转发无需授权,请保留这段声明。 随着SOC越来越复杂,包含的IP越来越多,单个SOC上实现了CPU, 射频模块,相机…

mtk-pmic

简单介绍了mtk6353这颗pmic各部分的功能 一.功能框图 6353主要由如下几部分组成 1.电平转换:LDO和buck 2.LED驱动current sink 3.RTC 4.电压检测AUXADC 5.控制信号:上下电时序,系统复位,异常处理 6.充电控制 7.audio codec 8.电量计fuel gauge 二.各部分介绍 1.电平转换 这…

高通Pmic闪光灯代码架构

msm-kernel 注册一个名为"leds-qti-flash"的驱动,驱动代码在"leds-qti-flash.c"文件中。 对下:实现对pmic芯片更新寄存器,也就是实际控制闪光灯的操作。 对上:提供led_classdev结构体,即flash/sw…

Qcom 平台 pmic adc读取代码实现

Qcom 平台读取pmic上 adc电压值的方法 如下图,可以通过平台提供的节点(参考高通文档将mpp配置为adc功能) cat对应的节点获取结果; 也可以通过自行实现的驱动中调用相关接口并转化结果; Kernel demo 参考代码&#x…

浅谈Linux PMIC驱动(一)

转眼间,从事PMIC驱动开发已将近4年,前后参与两款PMIC芯片研发,一款自研,一款Q公司PMIC,对PMIC有了一定的理解,将其总结归纳,算是这几年工作的收获吧? 读者对象:对PMIC感…

PMIC/SBC/PMU 电源管理芯片工作原理

目录 PMIC/SBC作用 DC转换的方式 PMIC 与ASIL PMIC 工作逻辑 PMIC与DDR的关系 PMIC与CPU PMIC/SBC/PMU作用 PMIC:power management IC的缩写,中文是电源管理集成电路。 SBC:…

PMIC 工作原理

1. PMIC芯片每个电压的输出可以通过外部EEPROM定制,若无EEPROM,使用默认的配置; 2. PMIC需要外部给一个使能信号开始工作 3. PMIC支持多种工作模式:BACKUP、ACTIVE、STANDBY 参考PMCI数据手册: BD9574MWF-M Power …

信号与系统--幅度谱和相位谱

周期信号的频谱 为了能既方便又明白地表示一个信号在不同频率下的幅值和相位,可以采用成为频谱图的表示方法。 在傅里叶分析中,把各个分量的幅度|Fn|或 Cn 随着频率nω1的变化称为信号的幅度谱。 而把各个分量的相位 φn 随角频率 nω1 变化称为信号的…

关于信号相位、信号阶段的解释

相位阶段(stage):  是根据交叉口通行权在一个周期内的更迭次数来划分的,一个信号周期内"通行权"的交接几次,就是几个信号阶段。也就是说只要信号灯色有变化(红、黄除外),相位阶段就发生了变化。…

基于stm32的两路正弦波相位差测量

利用stm32测量两路正弦波相位差,有四种主要思路: 1. 两路直接捕获信号直接得到时间差 即将正弦波过比较器变成方波(stm32直接测量正弦波也可以的,频率较大时误差基本上在忍受范围的),开启两路捕获得到上升…

信号控制基本概念(相位和阶段)

本科上课时都上过这些,但是后来做科研没做这个方向,时间一长就都忘了,最近实习做信号控制相关,得拾起来,要不然被人嘲笑了。内容主要参考这篇文章,写的挺好的,也很全面,接下来概括下…

相位调制

一天一个信号处理小知识 1.相位调制 引言 在通信系统中,当通信设备产生了需要发送的数据,这个数据为一长串比特流,如果使用示波器画出来,那么就是一连串的方波。要想进行通信,就必须得想办法通过空气将这串比特流发送…

求解一个序列的最小相位序列

求解一个序列的最小相位序列 什么是最小相位序列hmin(z)一个例子总结例子说明求解思路零点搬移规律由非最小相位系统构造全通系统和最小相位系统的过程原型 什么是最小相位序列hmin(z) 最小相位系统Hmin(z)是零、极点都在单位圆内的因果稳定系统。 最小相位系统Hmin(z)的逆z变…