苹果,三星,华为处理器的不同
PS:本人程序员,编写APP起家,现在主业移植ChromeOS。虽然没有做过cpu设计,但在工作中接触最多的就是针对不同处理器的优化工作,因此,仅对这三家处理器做一些评价,请轻喷。
这三家都是购买arm的指令授权,也就是说,他们可以使用相同的编译器(至于编译器优化是另外事情了)。其中华为同时购买了arm构架。这是arm设计用来实现arm指令集的硬件设计图。
关于指令集,其中有arm要求必须实现的部分,也有可选部分。对于一个通用cpu来说,arm强制要求的指令集是必须实现的(尽管很多都是为了兼容老构架而保留),可选部分是为了提高cup在某些情况下的性能,这些可选指令必须要编译器同时具有相应指令的处理代码,在编译所有本地代码的时候都要打开,才能起到作用。作为苹果来说,cpu是自己制造的,编译器和所有程序也都控制在自己手里。因此,裁剪指令集,就是苹果的特权了,一方面可以减少对老指令的支持以减少硬件设计难度,一方面增加增强指令,以提高性能。全世界也只有苹果能这么做了。
作为高通,也只能在优化指令执行序列,提高处理器频率和制成工艺方面提高了。华为能做的就只有在工艺方面想办法了(当然爱国脑加速也是个办法)。
苹果现在还是双核。作为一台手机,几乎大部分工作都是运行在前台,这跟服务器的任务差别非常大。服务器在运行中,大部分输入输出工作都是通过ip端口进行,而服务器可以理论上安装无限ip端口(多个网卡),所以,它不会因为等待输入输出而暂停。手机在亮屏的时候,能处理的工作再多,输入输出也都是通过触屏(这东西只有一个),关屏后,仅进行后台通信,就更用不上处理器了。所以,理论上手机是不需要运行太快的(nokia一款处理器能用好多年)。因为任务有限,苹果增加处理器速度的主要动力来自省电。cpu快的结果,就是它大部分时间都在休息。这样才能最大限度增加续航(看片的时候也在休息,工作的是gpu)。你拥有一块如此强大的cpu,它却是所有cpu里面最懒的。双cpu的调度和优化也相对简单,这样又省电了。当然,休息的结果,就是发热也非常少。苹果对cpu的优化既有高端的指令集方面的,还有简单粗暴的。就是增加cpu的缓存。增加一倍缓存几乎能提高50%~80%的日常处理速度。不服?你看看intel E系列cpu就好了,核心频率比i7低一半,单核性能差不多,多核完爆,主要原因就是拥有10M以上的三级缓存。越贵的cpu,主要区别就是三级缓存。
高通在这方面确实没什么办法,他做基带起家,cpu仅仅是副业。只能跟着拼核心数,因为单核性能确实需要花大价钱的(大幅增加研发和制造成本,降低成品率)。核心数多了,就是代码优化的问题了。你觉得很容易吗?大部分应用,连用上第三个cpu都费劲。因为确实没那么多工作呀。一个类似微信的app,后台通讯开一个进程,前台显示和处理输入,没了。好吧,我可以检索通讯录来增加好友啊。开一个进程调用通讯录。这时新消息进来了,通讯录要读磁盘,微信要写磁盘,你会看到微信卡了一下。你的通讯录好多,微信要计算客户特征值发往服务器(这个可以开个cpu干),你的主线程又卡了一下,因为内存被大量占用,系统要回收垃圾了(这是java的坑)……所以,无论你用了多快的cpu,有N个核心,你都躲不开外设被占用和内存垃圾回收(android主机,速度快主要来自存储器速度快,内存大,或者网络连接快,很少【没有】来自于cpu核心数量)。评价高通的cpu,就是评价,你连接外设用了多先进的接口,带宽增加多少,内存带宽增加多少,增加了多少协处理器(类似于gpu,处理照片也有专有处理器)。跟核心关系一点都不大。
说到华为,先说我是非常非常爱国的(不敢扶摔倒的老人,是因为穷)。其实,作为从业者,我更钦佩rockchip(瑞芯微电子)。手机跟pc完全不同,cpu仅仅是手机构成中最基础的部分,并不是最出彩的部分。在电源有限,发热受限的情况下,cpu处理能力再强也玩不出大花样。关注cpu的人,可以多关注rockchip的3399,那是真正玩cpu的厂商制造的cpu,已向全世界开发者放开代码,经受考验。希望华为能够放开麒麟的代码(否则真不知道它的美丑),让麒麟成为开放的处理器,即便只能用于华为手机,也让华为多了无数可能性。
联系客服