談到CPU, 我覺得蘋果跟Android陣營雙方在這領域的發展還滿有趣的.
文長慎入. 本篇技術含量高, 細節懶的看可以看上色的部份.
---
蘋果其實在CPU方面算是深耕多時, 而且賭很大.
: 這款手機搭載的 Apple A9 處理器,單核心跑分為 2413、多核心跑分為 4795。
: 先前韓國媒體報導的 Snapdragon 820 處理器單核心跑分為 1732、多核心跑分 4970。
蘋果在單核效能方面其實已經領先一段時間了,
從A7系列開始, 就是單核蘋果強, 多核Android強.
這次A9處理器的出現在這方面沒有改變太多,
單核持續領先, 多核差距大幅縮小, 甚至追平.
蘋果的單核效能領先其實不是偶然, 這是因為蘋果
意識到大多軟體其實依然是吃單核效能. 這點在iOS
跟Android上基本上來說都是正確的.
所以說, A7算是一個轉捩點, A7以前, iPhone順
單純是因為對手Android還不夠成熟(所以Android還
沒上KitKat的趕快上, 能刷的不要等). A7以後,
同期的Android KitKat優化也不差, 所以iPhone界面
順暢的主因是強大的單核效能, 而非廣為流傳的
"軟體優化". 當然不否認iOS軟體有優化, 但這與現代
的Android差異已經不多, 所以不是主因.
看到這裡, 相信你會問:
1. 為什麼高通/MTK/三星不發展單核強的SoC而專注
在多核效能?
2. 蘋果怎麼做到大幅提昇單核效能的? 這樣做, Z>B嗎?
問題一的答案有兩部份:
1. Android 5.0以前的Dalvik系統需要多一個核心來進行JIT
Compile.
相信早期的Android玩家應該都記得Android 2.2 Froyo所帶
來效能大躍進, 當時的效能提昇, 來自JIT Compile, 他能夠
在程式執行時, 將Dalvik/Java的程式碼, 轉成CPU原生的
程式碼. 原生的程式碼當然快的多. 然而, 他是程式一邊跑,
他一邊轉, 所以程式跑在一個核心, 轉換的工作(Compile)
在另一個核心跑. 因此多核心是真的會被用到. 這也就是為什麼
在Froyo的出現(05/2010)後, 多核心的手機(LG Optimus 2X,
12/2010)就迅速的出現.
那講到這邊, 跟Android 5.0有什麼關係? Android 5.0出現了
ART. ART能夠在軟體安裝的時候, 就將Dalvik/Java的程式碼
轉換成原生的程式碼, 避免每次執行, 每次轉換還需要多一個
核心的問題. 因此5.0後Android對多核心的需求會下降.
也就是說, 未來Android系統的CPU也會走向高單核效能的方向.
當然, 最近MTK要出Helios X20, 一次來個10核心, 這看似
有些反常, 不過別忘了, 他是分成3個群組, 4+4+2, 所以真正
跑分時, 他根本就是雙核心, 只有兩個A72核心在跑. 剩下
八顆A53, 都是廢物, 應該廢除... 阿不是, 其實A53的小核心
有其待機時的低耗電優勢, 但是不用到八顆那麼誇張, 放那麼
多顆我懷疑是行銷噱頭用, 如同當年Pentium 4那超高卻沒用的
時脈.
因次我建議, 消費者們必須要讓廠商了解, 核心數量已經不被
在乎, 少去關心核心數量. 真正在乎的是單核效能, 跟少數
(<=2~4)核心狀況下的多核分數. 讓他們少浪費錢跟時間出
那麼多顆A53這種little核心.
2. 大多SoC廠沒能力自行開發CPU, 全部都用ARM的公板來優化.
目前MTK, 三星, 跟大陸的海思所用的晶片全數都是ARM的
公板. 然而, 當時ARM就沒有這樣一個高單核效能的核心, 他們
當然沒有辦法出這樣的一個產品. 另外, ARM的CPU設計功力也不
是那麼的傑出, 當年Cortex A15時期, ARM的公板Cortex A15被
高通設計的Krait架構給打敗. 來到ARMv8時期, Cortex A53/57
又被蘋果的Cyclone架構打敗.
當然, 近期有兩個變化. ARM推出了Cortex A72核心, 他的單核
效能有不少的成長, 但ARM在優化這顆核心時, 似乎還是很顧慮
面積, 所以個人預估, 單核效能要追平Apple A9可能有困難.
另外, 不只高通要出自己的核心(Kryo), 最近三星似乎也發現有
必要研發自己的CPU架構(Mongoose).
另外第二個問題, 蘋果衝單核效能怎麼做到的, 並且有沒有副作用?
1. 蘋果單核效能的來源是把桌機的CPU架構搬來手機上用.
蘋果從A7開始用了他們自己開發的Cyclone架構, 當初5s發表時,
蘋果就說他們用了桌機等級(Desktop Class)的CPU, Cyclone架構
細節流出來後, 確實它比其他ARM核心大且複雜的多, 架構也跟Intel
的Haswell架構比較相似.
關於Apple Cyclone的CPU架構國外網站Anandtech有滿詳盡的介紹,
不過似乎台灣沒有媒體把發翻成中文, 所以有興趣的只能看英文吧.
http://www.anandtech.com/show/7910/apples-cyclone-microarchitecture-detailed
短網址: http://goo.gl/OycHpr
2. 大核心的副作用: 續航力
大顆的CPU核心, 例如Apple Cyclone或是Intel Haswell, 都有
一個問題, 他們的耗電量大. 為了解決這個問題, 蘋果用了一個
策略, 用較快的CPU, 迅速將事情做完, 然後迅速關掉CPU來省電.
但這方法也是有缺陷的, 較大的CPU要完全關閉需要較長的時間,
如果不完全關閉, 輕度休眠(例如關CPU不Flush Cache), 耗電量
就會比較大.
這個問題依然解的不完全, 連Intel也在想辦法. 所以說, 蘋果使用
桌機等級的CPU架構最大的賭注, 就是續航力.
續航力這點, 其實可以從國外各大網站的測試中看到. PhoneArena
所進行的測試中, 同樣的電池大小(mAh數), iPhone的續航力大多
時候會輸Android. (除非你用了SD810, SD810不要買)
例如:
Galaxy S6 iPhone 6+ HTC One M8
電池容量 2550mAh 2915mAh 2600mAh
PhoneArena續航評鑑 7時14分 6時32分 7時12分
所以簡單一點來說, 蘋果拿續航力換來了高單核效能跟界面流暢度.
iPhone上任何用CPU動作都會帶來不少續航力的損耗.
如果蘋果要解決這個問題, 長遠來看還是要往類似ARM那樣的
BIG.little架構, 大核心配小核心. 不過這方面有些許難度,
因此離蘋果重新定義BIG.little架構, 應該還有些時日.
--
All Comments