在一颗小小的SoC 晶片中,已集结了CPU(四颗A57 与四颗A53 核心)、主记忆体接口( LPDDR4)、数位讯号处理器DSP、图形处理器GPU(Adreno 430)…...

        废话不多说了,今天这篇文章唯一的主旨就是教大家进一步能”大概”看懂这张图── SoC 晶片。(大概的意思就是我也讲不了很深)

        让我们以高通的Snapdragon 810 处理器为例,说明并比较联发科、苹果等各家处理器的功能。
       
        图片来源: 高通官网
        SOC 处理器– 多核心、异质运算
       

        右上角的Cortex-A57 和Cortex-A53 是什么意思呢?为什么会有两款CPU?

        多核心处理器( Multi-core processor) 是在单个处理器元件中,加入两个或两个以上独立的中央处理单元,称为核心(Core)。

        对于电脑来说,处理器核心再强,透过风扇和电源插座、也较不会有发热和耗电的问题。

        但行动装置在拉抬处理器效能的同时,仍必须考虑发热和耗电问题。要怎么样才能兼顾效能和耗电问题呢?

        ARM因此提出了big.LITTLE异质运算多核心处理器配置。ARM将比较耗电,但运算能力强的处理器核心组成的「big丛集」与低耗电、运算能力弱的处理器核心组成的「LITTLE丛集」结合在一起。

        「异质运算」的处理器意指,使用不同指令集架构的计算单元组成的系统。
        ARM会卖指令集架构(ISA)、也会卖有设计好电路的阳春晶片吗?高通和苹果一般是跟ARM买指令集架构、电路自己做。
        所以高通的KRYO架构、苹果的TWISTER架构,就是自己研发的电路架构;然而联发科或魅族等没有自己研发电路的,就是直接跟ARM买晶片电路的SOLUTION。
        而ARM 卖的阳春晶片,目前最常见的就是CORTEX-A 系列。又分为高性能、低功耗和超低功耗3 类:

        - 高性能系列:A57、A72
        - 低功耗系列: A53
        - 超低功耗系列:A35、A32

        异质运算就是把A72、A57 和A35 等采用不同的指令集架构或奈米制程工艺的核心,设计在同一个处理器里面。
        看起来有点难懂?咳咳,让我们用通俗一点的方式讲解。

        手机使用者永远都会希望手机速度越快、效能越强越好,但一般的App 常见也只需要一个够强的核心在跑就够了。那能不能在手机运行的情况下、开启高效能但耗电量也较高的核心,但手机待机或暗屏的情况下就开启低效能但也低耗电的核心呢?

        让我们以联发科在2016 年发布的全球首款十核心处理器──Helio X25 为例。

        Helio X25 是一款20 奈米制程,采用了ARM big.Little大小核心架构,十个核心由两个2.5GHZ 的A72、四个2GHZ 的A53 与四个1.4GHZ 的A53组成「2+4+4」结构。

        很多消费者听到都觉得:哇十核好厉害好棒棒,高通也才八核、苹果之前还都单核心呢!但事实上,联发科在设计十核时,并不是要让那十颗核心同时用的。
       
        需要高效能时,让两颗A73 在跑;负载量稍低的时候变成一颗A73 加上一两颗A53;负载再低时变成两颗A53、负载再更低时变成两颗A32…..

        依据现在的工作需求,去切换高效能高功耗、或是低效能低功耗的处理器。如此即能做出高效能,但平均耗电低的多核心处理器,ARM 表示使用big.LITTLE 架构,相较于只使用「big 丛集」相同CPU 核心数量的处理器,可节省多达75%的功耗。

        所以所谓的十核心,同时间启动的核心、只约莫是二到六颗间的数字(六颗的情况已经很少了)。高通的案例也是,如果它全部的八核心同时运作起来,绝对会瞬间过热!

        一般CPU 若要不过热,功率瓦数约是3 – 5 瓦之间。手机的范围就这么大,要散热的话你总不能在旁边拿电风扇一直吹它,能散的热就只有这么多。(NVIDIA 之前出的处理器Tegra 就有装风扇… )

        晶片发热的问题,欢迎参考TDP(T HERMAL  D ESIGN  P OWER)。TPU是CPU电流热效应以及CPU工作时产生的单位时间热量。TDP一旦确定,就确保了电脑在不超出热维护的情况下有能力运行程序。

        只能发这么多热,装这么多CPU就是为了刚好让热的极限TDP 4瓦吃满。或4颗A53一起开也是会吃满,看你要开哪一颗。换言之,多核心其实没什么用,多数情况下只有一个在跑、其他都没在用;不如一个很能打、比十个都废物更强。

        事实上,影响手机实际性能的因素很多:
        1. 单核性能:都是八核,最大核是A72 的八核和最大核是A53 的八核就不一样。
        2. 核心数:在单个核心相同的情况下,核心数多的晶片在理论上性能会比较高,比如Snapdragon 652 比Snapdragon 650 更好。
        3. 调度资源的机制:在切换大核心到小核心时,能不能协调得好、能真正控制好功耗。在这一点上,自主研发架构的晶片通常表现得更好,比如高通的Kryo 架构和苹果自主研发的A 系列晶片架构。

       
        用一张图告诉你联发科、高通和苹果处理器的差异。
        (来源:网路流传)

        苹果在A5 (iPhone 4) 和A5 之前的优势还不在CPU,那个年代它的CPU 还蛮弱,采用的也是ARM Cortex A系列方案,也只有单核心。

        LYNN 闲聊:相比苹果对IOS 的控制力,GOOGLE 对ANDROID 的开发者基本上采取了放任自流的态度。常驻后台、广告推送、通知栏推送、弹窗推送等非常敏感的权限,ANDROID 几乎全都提供给了开发者。

        举例来说,IOS 软体方面锁得比较紧,IOS 软体是不能在背景执行的。

        有兴趣的读者欢迎参考  APP PROGRAMMING GUIDE FOR IOS ,内文便有表示唯独在一些限定的情况下才能做BACKGROUND EXECUTION,比如短时间执行的工作(执行完就得关闭了)、或是要在背后下载、背后播放或录制声音…..

        别问为什么不准,苹果老大说什么就是什么。多半是苹果先前的处理器只有效能强的单核心,无法像多核心处理器那样、在高效能和低功耗之间做切换,所以为了要省电、避免浪费电池,就把背景执行的权限关掉。

        之前就有IOS版的FACEBOOK工程师证实,为了要在背景执行,他们偷偷开了一个录音功能——但它并没有真的在录音!

        只是为了要让程式在背景执行时不会被IOS锁住而已,也是因此成了降低IPHONE电池寿命的元凶。目前FACEBOOK已经在更新后的版本中把BACKGROUND AUDIO砍掉了,希望不要再发生。

        一直到A6 开始,苹果才不再使用ARM 的晶片公版,改向ARM 单买指令集,以ARMv7s 为基础自己开发CPU 架构「Swift」双核心处理器。

        此举也让苹果成为继高通后,第二个能以ARM 指令集为基础开发SoC 的公司。

       
        (图片来源: Wiki )

        A5 晶片的制程采用32 奈米、ISA 指令集架构用ARM v7、单核心Cortex-A9。

        A6 晶片的制程采用32 奈米、ISA 指令集架构用ARM v7、双核心Swift。

        然而从iPhone 5 到iPhone 7 之前为止,苹果的处理器也都是维持使用两颗双核心,且两颗核心一样大。

        相较于高通八核、联发科十核,虽然苹果处理器的核心数少,但效能却很强。当然,耗电量也非常快。(备注:苹果IC设计的实力,堪称是一家处理器公司)

        当然你可能会好奇,苹果之前虽然有双核心,但却不是一大一小、而是两颗一样都是功耗大和效能强的核心,该怎么控制耗电量呢?

        除了使用管得比较严格的iOS 作业系统之外,苹果在A7 (iPhone 5S) 处理器开始多了一颗协同处理器(Coprocessor) M7,但这颗处理器非常弱,专门拿来管理手机硬体感测器,如陀螺仪、加速感应与指南针的资讯。

        之前苹果在管理周边感测器的方式,是使用核心的处理器去管理。事实上处理感测器讯号这件事情并不太复杂,然而为了要管理这些感测器,需要唤醒整颗处理器、管理完后再进入休眠。万一这些讯号比较频繁,就会变成持续性的耗电。

        苹果在A7 开始,则是将这些接收感测器指令的动作分离出来,透过这颗M7 进行管理。

        由于M7 基本上是基于低功耗架构所作,且其目的仅为了管理这些感测器,架构可以做的相当精简,加上是为管理感测器最佳化,不像处理器的CPU 架构还要支援指令集以及通用运算,能将功耗降的比较低。

       

         一直要到2016年底,苹果才发表了同样指令集架构的异质处理器  A10 Fusion (搭载在iPhone 7上) ,采用自己开发的架构Twister ,最大的变化就是双核变四核── 2大核+ 2小核。但要么就是大的两颗在跑、或小的两颗在跑,绝不会同时一起跑。

        这和你看到其他的Android 手机,像是高通Snapdragon 或是联发科Helio 晶片的异质处理器──两颗A73 加上四颗A53 这种可以独立开关的设计不太一样。
         
        记忆体
       

        在手机上的硬碟采用NAND Flash (快闪记忆体)。虽然NAND Flash 的名称中有记忆体,但它比较偏向硬碟的角色、拿来存资料用,不是一般讲的记忆体。

        那主记忆体呢?手机记忆体的规格一般就是LDPPR3、LDPPR4。LPDDR 基本上是一个「介面」,可以让你接记忆体IC 上去。

        若要讲得更精确一点——LPDDR是低功耗记忆体的通信标准,以低功耗和小体积著称,专门用于行动电子产品。

        4GB RAM 的手机记忆体,早在2015 年下半年就被部分手机厂商列为了最低标准配备。2016 年初时,中国手机厂商Vivo 就已经打着「全球首款6GB RAM 智慧型手机」的行销口号推出Xplay 5。

        现在的Android 手机,4GB RAM 算够用,6GB RAM 成为标准配备,8GB RAM 是旗舰手机配置。

        然而,2016 年底发行的iPhone 7 给的是2GB、 i7 Plus 给的是3GB RAM。

        … 想抱怨得少吗?

         从以前开始,连续好几代的iPhone 都是1GB RAM,比如iPhone 5s、i6 和i6 Plus 都是 1 GB。也因此,厂商在设计iOS APP 时就会注意要对记忆体省一点。

        事实上当年的APP 没有用到这么多记忆体;最近苹果RAM 的大小上来后,iOS 软体开发商对于记忆体也越来越敢用、APP 越做越肥… 这是鸡生蛋蛋生鸡的问题。

        所以现在的iPhone 使用者可能会越来越感受到记忆体不够的问题,不知道这否是苹果故意想逼使用者升级…
         
        GPU:ADRENO、POWERVR…

       

        GPU 的架构和CPU 的ARM 架构完全不一样。

        高通有自己的一套GPU叫Adreno,是先前最强的GPU。苹果用的是Imagination公司的PowerVR系列。ARM的官方也有出一套官方版的GPU架构,叫ARM Mali。

        其实GPU 这种东西只有运算量的差异,你只要敢堆、就会变强。因为GPU 的Workload 就是很平行化的东西。

        比如同样都是NVIDIA 出的Pascal 核心GPU,有些是比较小的晶片、执行单元就比较少;比较大的晶片上的执行单元比较多,执行速度越快快、也占比较多的电晶体面积,当然就比较贵。

        同样以ARM 的Mali 来说,有好几个型号,有些是大晶片、有些是小晶片。

        苹果在晶片上的利润不高,很敢堆GPU,所以GPU 也很不错。反过来说,联发科的GPU 不强,很可能是为了压低成本而不敢堆…。

        事实上苹果的合作公司── Imagination 所出的PowerVR GPU 不是只有苹果在用;如果你想买的话,拿得出钱(可能要几百万美金以上)都可以买。

        所以PowerVR不只搭载在苹果的处理器上,德州仪器的Soc晶片OMAP系列也是PowerVR,三星、联发科,甚至是中国的IC设计厂Allwinner和Rockchip等也都有用过。

        然而Imagination 的最大客户还是以苹果的iPhone 为主,苹果支付的许可费用和专利费占 Imagination 总收入总额的50%。

        也因此在今年(2017) 4 月,苹果突然宣布将在2 年内停止使用该公司的GPU 设计、转而采用自己设计的产品之后,Imagination 股价瞬间暴跌了近69%。6 月时Imagination 宣布将公司出售,到现在还在找买家。

        (蛮有可能是苹果给Imagination 施压,等股价暴跌后再来接盘… XD 买家到底会是谁,就让我们拭目以待吧)

        总结一下:如果以GPU 效能来做个排序,一般是Snapdragon 搭载的Adreno 效能最强,再来是苹果的PowerVR、与联发科等等的其他处理器。

        像我们用来举例的Snapdragon 810 虽然有着CPU 过热问题,但GPU 的效能很强大。
         
        DSP 和MULTIMEDIA

       

        DSP 是数位讯号处理器。它的目的是计算讯号,和GPU 一样是一堆加法和一堆乘法的运算。但和GPU 不同的是,GPU 的目的是要计算很大量的数据、也就是Throughput (生产量)。

        计算机结构中有两种重要的比较数值,一个叫Throughput,意思是单位时间内有多少量产出。另一种叫Latency(延迟),意思是交给你一项任务,要多久才会做完。
        Throughput 是可以叠的,像是GPU 的目标就是Throughput,叠越多效果就越好。

        相反地,DSP 的目标则是Low-Latency,也就是运算量不用很大,功耗低但须速度快。比如我们在讲话时需要把声音压缩再送出去,而这个压缩的过程不能花费很多时间。

        DSP 一般来说会用来处理手机讲话的压缩和解压缩、搜集和运算感测器的资料等等。

        Multimedia Processing(多媒体)——影像要有压缩和解压缩很耗CPU,所以这些是交给特殊硬体来做。
         
        今天我们介绍了:
        ARM big.LITTLE 的异质处理器架构,从大核A72、中核A53 到小核A35 之间做切换来达到效能与功耗的平衡,也是高通八核、联发科十核和苹果四核的意义               
        高通Kyro 和苹果Twister 是购买ARM 指令集、电路架构自主设计,联发科Helio 、三星Exynos 或华为Kirin 处理器则是买公版晶片(ARM 出的阳春版电路设计) Cortex 系列去设计。               
        手机记忆体规格为LPDDR,最新一代为LPDDR 4。(iPhone 给的记忆体都比较少一些… )               
        GPU 强否,多半是看厂商愿不愿意下重本去堆。一般是高通Adreano 最强、苹果的PowerVR 其次,再来才是其他厂商。               
        数位讯号处理器DSP 的目标是低延迟,和GPU 强调Throughput 不同。               


        今天对手机SoC 处理器所具备的功能介绍就先到这为止啦,大家大致上有个领略就好,也好在 iPhone 8 出来后心里有个底、它到底强不强啦~~
         
        文、图: 写点科普,请给指教 与 股感,来自生活