谢谢粉丝“南瓜头萌萌哒”的邀请。题主的说法并不准确,因为手机CPU核心(内核)并不比电脑CPU的多。现在手机CPU内核最多为8核,电脑CPU内核可以轻松地超过这个数据,第10代i9-10980XE的内核有18个,是手机CPU的2.25倍,i9中档次最低的10900X,内核也有10个(见下图红框处)。
这还只是PC的CPU,如果是服务器用的至强,内核数轻松突破30个。
你还能说手机CPU核心数比电脑CPU的多?
实际上,CPU内核的多少,不仅和CPU档次有关(内核数多的往往档次越高),还和它用在什么地方有关,一般笔记本电脑CPU核数(见下图)少于台式电脑CPU,因为笔记本要优先考虑功耗问题。
这就牵出CPU设计的问题,如何平衡性能和功耗?这方面英特尔吃过亏,在2000年推出奔腾4处理器,最高运行频率达到3.8GHz,比今天许多笔记本CPU的都高。当时的CPU设计思路是高运行频率就代表高性能。但奔腾4的性能并没有超过上代产品,反而因为过高的频率带来散热和能耗问题。几年之后,奔腾4的设计理念被抛弃。
圣诞快来了,我用圣诞老人打个通俗的比方,单核CPU相当于一头驯鹿拉着圣诞老爷爷跑,再怎么用力也快不起来,八核CPU(现在手机高端CPU常规设计)相当于八头驯鹿拉同样的雪橇,每头驯鹿的负担轻了跑的更快,圣诞老爷爷可以唱“带我飞向那片有你的天空”,和月亮来一个合影。
问题又来了,既然可以通过堆核心数量提升CPU性能,为何目前手机CPU最多止步于八核呢?因为手机CPU是集成到SOC芯片中的,多增加CPU内核数会挤占芯片面积,使GPU、NPU和BPU(基带)无处安放,所以目前手机CPU内核数最多8个也能满足性能需要时,就没有必要为堆核而堆核。
相反,电脑CPU的集成度比手机芯片低得多,加之电脑机箱内部空间大、对性能要求高,能够开心地堆内核数量,所以一颗CPU堆出20多个内核简直是小菜一碟。当然,前提是价钱贵。
原创回答,搬运必究。
因为手机这几年正赶上发展的黄金时期,就像是PC快速发展的那20年,因为人们都在用手机,有的人甚至手里两三部,所以手机厂商们包括芯片厂商都在不遗余力的提高手机的卖点,像手机CPU没用几年就从单核、双核一路来到了八核和十核,速度可谓是非常快,最重要的原因当然是想依靠多核心来提高手机的卖点。
目前消费级电脑CPU核心数量基本也就是6-8个,能达到10核的就算很多了,而手机CPU之所以能轻易达到这么多的核心数量主要还是源于arm架构,这类架构采用了精简指令集,所以即使设计了多核心,其核心面积也不会很大,堆核心比电脑上的X86架构CPU容易很多,功耗也不会失控。
然而,不管是电脑的windows系统还是手机的安卓系统,对多核心CPU的优化始终不太完善,尤其是大量软件并没有对那么多核心优化,这样手机CPU核心再多用处也不大,即使是为了满足更好的多任务操作也完全不需要这么多核心,反而是提升了功耗和发热,得不偿失。
不过这几年手机厂商也意识到了一昧的堆核心没用,所以在一颗CPU芯片上设计了几个高性能核心和低功耗核心,各司其职,有利于提升效率也有利于降低功耗,未来很长时间我想手机CPU核心数量不会再一昧的提高了。
现在大家购买手机第一个看的就是处理器,处理器的好坏,决定着手机的性能,也就是我们所说的cpu,手机使用的是移动端cpu,而电脑使用的是pc端cpu,那么这两个之间有什么差别呢?
一样的核心和频率手机比不过电脑
需要注意的是,如果我说说的「电脑」不单指 PC(个人电脑),那问题本身都是不成立的,用于超算的大型计算机的核心数目更会惊人。另外,如果算上 GPU(图形处理器),这个问题也可能不成立。
所以问题暂且设定为:手机的 CPU与 PC (个人电脑)的 CPU的核心对比吧。
为什么手机核心数目提升的比计算机快?
结论:两个领域有非常不同的需求,其中关键的影响因素是「发热」和「功耗」。
1 PC可以不在意发热与功耗,但手机不可以
PC可以一味地追求高主频,高单核性能,因为它可以安装风扇或者安装很大块的散热装置,可以直接接入家用能源。
当然,虽然 PC的性能往上涨的空间可以更高,但是这个「一味地」也是有限制的,所以 PC在更早以前就在尝试多核了。
但是手持智能设备的单核不可以「一味地」追求高频,它小巧,它随身携带,它要考虑发热,要考虑电池的容量。
所以,智能终端的 SOC在设计的时候必须在兼顾温控与能耗的情况下。这注定智能终端的 SOC要走 PC的多核化老路,并且做更多样化的尝试。
就是因为这种差异,导致手持设备 SOC的设计厂商在做各种架构,技术与工艺的尝试。
2单核发展遇到瓶颈
好了,那单核的性能努力如何呢?从当前市场上在售的来看:
Cortex-A57是 ARM最先进、性能最高的应用处理器,号称可在同样的功耗水平下达到当今顶级智能手机性能的三倍;
而 Cortex-A53是世界上能效最高、面积最小的64位处理器,同等性能下能效是当今高端智能手机的三倍。
这两款处理器还可整合为 ARM big.LITTLE(大小核心伴侣)处理器架构,根据运算需求在两者间进行切换,以结合高性能与高功耗效率的特点,两个处理器是独立运作的。
而联发科的 Helio X20的大核 A72可以到 2.5Ghz。(A57 / A72的指标数据的时间背景为 2015年 。)
但单核在主频上去以后,要求的电压更高,发热严重,而随着发热量的增加,漏电率又会增加,会进一步增加能耗与发热。
即便有相应的技术改进如 HPM以及最新的 FinFet,让漏电率下降不少,还有一些晶圆分类和标记技术,以及各种类型资源的 DVFS支持去降低电压。
但功耗和发热还是会影响手持设备的两个重要体验,即续航与温控。
所以即便单核的性能过于强劲,发热的剧增会导致处理器持续高频不了多久。
因为人体的温度是恒定的 37度,如果人体接触的物体温度,温一点,42~43度,再热一点 45~47度,再就烫起来了。
再加上主板的散热结构已经阻止了固定工艺和技术下的性能成长空间,也限制了高频核心的高性能的应用。
同时手持设备的结构空间限制,又限制了散热技术的应用,这个是 PC和服务器根本就不存在的问题。
既然往上涨不了了(实际上还有技术和成本制约),那是不是可以横着涨呢?
3手机多核为用户提供更好的体验
好了,尝试多核,而多核又有同构多核,异构多核,有真多核还有伪多核。
到这个份上,咱们就可以得到一个初步的结论,多核完全是为了迎合消费者,不是为了迎合而迎合,而是为了给用户更好的体验。
(以下内容高能,请提前准备好博士学位证书)
为什么会提供更好的体验?
随着主频的提升,单核的工作能耗会随着指数级上升,相应的热量聚集也会更高。
换算到同等计算能力(单位时间内可执行的指令数)的多核,能耗上升呈线性关系,热量聚集会明显降低。
具体量化起来,得画个图表,把频率,核数和能耗关系绘制出来,这里先省掉。
先来介绍一下这种换算的实际场景限制:
1)对于远古时代的单一任务系统,多核是没有意义的。任务的工作量没有办法分派给其他核心执行。并行不起来。
2)现今的系统,包括 Android等手持设备的系统默认任务数量已经非常多,具体数量会有差异。稍微看了下 MX3,有100+,实际线程数只会更多。
3)多核相比单核,无用的任务 Context Switch会减少,能耗利用率会提高,任务的响应能力(最高频率满足条件下)也相应会增加。
甚至对于一些关键的任务,可以通过独占某一个核心获得最好的响应能力。
那核数是不是越多越好呢?是不是 100个任务就开 100个核呢?
肯定不是,首先有硬件成本(晶体管个数会成倍增加)的限制;
其次,核数多了以后,负载均衡,任务迁移,甚至任务同步也是很大一笔开销;
再者,并不是所有的任务都是大任务(CPU紧密型,典型的例子是 Android升级包的 AES解密算法),实际上是大部分任务都是轻任务(典型的例子是很多内核线程,比如 watchdog),轻任务完全可以通过单核分时调度,未来的 Linux还支持 package多个小任务到一块;
还有一个是,蛮多应用在开发之初未能采用多任务设计,无法充分利用多核。
那到底应该设计成多少个核呢?不同的核如何分配呢?大小核还是异构多核?
核心数的上限应该取决于实际的应用情况:
1)单个应用的设计情况,暂时手头没有详细的不同应用的线程数数据,综合其他渠道的一些数据,大型游戏通常会是使用多任务的典型场景。
2)多个应用同时工作的情况,以及前后台同时工作,系统启动,系统休眠后唤醒等场景,例如后台下载,听音乐,前台浏览网页。
3)未来应用场景,比如说分屏与多窗口,多个前台应用同时工作等。
具体的核心数利用情况,手头没有大数据,暂时不给确切的结论。
后面找个时间写个脚本观察下自己一天的使用情况,把日常应用都跑一遍,统计下真实的核心利用率,根据部分实验结果预计部分场景可以到 5~8个,也有部分可以比较充分地利用 3~4个,而有一部分用到 1~2就够了。
但是目前最多的手机核数已经到 8核,包括同构与大小核(big.LITTLE)。
同构多核的 8个核是对等的,所以考虑的场景更多应该是 8个核同时利用的情况,这个情况应该是非常少数的,比如系统启动,前后台多个大型任务同时工作,以及未来潜在的分屏或者多窗口,再一个是 Benchmark(你懂得)。
而大小核(4+4)的这种情况则不一样,这相当于搞了两个档位,一个高档位是 High Performance的 U,一个低档位是 High Efficiency的 U,这个可以针对不同应用场景进行灵活组合,并不需要多个核一定要完全跑起来,比如说:
1)很多小型游戏,比如说玩过的一个漂流游戏,三个小核跑起来很节能也很顺畅,但是 2个就不够,第三个线程无法并行。
2)比如说应用启动与 ListView,可以立即迁移到大核上,保留1~2个小核跑其他的小任务,Boost 1~2秒后,交互完工后再回到小核。
3)而开机以及前后台等场景则可以突发把所有核心都开起来,做到快速开机。
这样大小核兼顾了手持设备的续航和温控体验,这里的多核并不仅仅是需要多个核心同时跑起来,而是可以有多个不同的档位选择适应不同的场景。
至于 MTK未来的 4 + 4 + 2架构(Helio X20)则更多是对当前大小核的一个补充,相当于多引入了一个档位,这个对于平衡能耗与性能是非常不错的尝试。
相比于之前简单的调频来调节档位,这个切换不同架构的 U (low energy v.s. high performance)的档位能更好地体现能效与性能的差异(蛮像汽车的档位哈),谋求不同场景的应用需求。
A72的引入必然会全面提升交互场景以及超大型游戏的应用体验,让交互延迟进一步下降。
而两个低档位的不同频率(工艺方面暂时不确定是否有差异?)的 A53则可以进一步突破 MT6752的同构 8核架构,让两对 4核分别满足不同场景需求,比如说在线浏览和小型游戏等日常应用场景可以降到最低档,而中型游戏可以跑中档,确实负载小的时候还可以切回最低档;而系统启动等场景,由于可以多核全开,那么启动速度可以预想应该会提升不少
因为架构不同。
手机CPU一般采用大小核设计,大核负责性能,小核负责能耗控制,所以通常来讲手机的大小核并不会同时工作,比如现在主流的芯片采用的都是四核A7x+四核A5x,使用实际运行时工作的只有四个核心。
电脑架构是真正为了性能实现的结构,入门级别一般是四核,还有六核和八核产品,而且因为支持超线程技术,实际逻辑CPU数量会是物理核心的二倍(有支持更高超线程数量的,但是商用产品不多)。而更高等级的CPU甚至可以达到64核128线程,所以逻辑核心数量是远高于手机的。
这也是手机性能不能和电脑相提并论的一个方面。
随着科技的发展,电子产品逐渐普及,手机已经成为了标配,而且很多家庭都会安装一台电脑。也是因为网络技术的发展,人们知道了处理器(CPU)的重要性,很多人在购买手机或者是电脑的时候都会优先查看处理器(CPU)型号。不过在这时候,问题也就出现了,同样是处理器,为何手机CPU和电脑CPU的性能差距这么大?
手机CPU主要有高通的骁龙系列、华为的海思麒麟系列、三星的猎户座系列、苹果A系和联发科的P系列;而电脑CPU主要是因特尔的i系列。对于手机CPU我们都知道,苹果A系的性能是最好的,但即便如此,手机CPU的性能还是比不过电脑CPU的性能,这是为何?双方又有什么差别?下面就让我们一起来探讨一下,看完涨知识了!
首先手机CPU和电脑CPU的架构是不一样的,电脑CPU多为采用X86和X84架构,而手机多是ARM架构,两者的指令机构有很大区别,电脑CPU用的是复杂指令系统(CISC),而手机CPU则是精简指令系统(RISC),相当于2个生态。也是由于2这的定位有区别,在同等频率下,电脑CPU的浮点运算能力是手机CPU的几千倍。
然后就是核心数的差别。手机上的多核心,其实是多“CPU”,只是将多个CPU芯片封装起来,有种强行粘贴在一起的意思,也是与联发科的8核CPU干不过苹果的单核CPU。而电脑的多核心,是指一个处理器上集成了多个运算核心,这些运算核心通过相互配合、协作,完成了同一件事情,是将多个并行的个体封装在一起,每个个体都可以运转,性能自然更加强大。
最后就是频率的差别,手机CPU的核心是有高频和低频之分的,一般1、2、3、4核的频率是2.8GHz,5、6、7、8核是1.6GHz。目前市场上的手机芯片只有骁龙855和855+的频率是2.8GHz左右,而电脑CPU都是处于高频,而且早在几年前就已经突破了3GHz,甚至有部分高端芯片已经突破了5GHz,也是在这方面,2者差距非常大。
同样是芯片,为何手机CPU和电脑CPU性能差距这么大?看完涨知识了。其实手机CPU和电脑CPU没有什么可比性,因为2者并不是一个“圈子”,虽然现在的手机被网友们调侃为“掌上电脑”,但是和电脑还是有很大差距的