同為Arm架構晶片 為何存在差距?

作者 : 趙明燦,EDN China

隨著歷年智慧型手機的推出,基於高通CPU的手機在性能和價格方面始終和蘋果有所差距,這就產生疑問:為什麼同為基於Arm的晶片,高通的Snapdragon處理器卻和蘋果的A系列有所差距呢?

隨著歷年智慧型手機的推出,基於高通CPU的手機在性能和價格方面始終和蘋果有所差距,這就產生疑問:為什麼同為基於Arm的晶片,高通(Qualcomm)的Snapdragon處理器卻和蘋果(Apple)的A系列有所差距呢?EDN China將圍繞這個話題跟大家討論一番。

歷史背景

有報導指出,高通和蘋果的差距從第一批64位元處理器就開始了。眾所周知,Arm在2012年10月首次公佈64位元處理器核心Cortex-A57。但是,高通則是在2014年發佈自己的第一批64位元處理器Snapdragon 810和Snapdragon 808。而蘋果2013年推出的iPhone 5S手機,其A7處理器就已用到64位元Arm核心了,2014年時蘋果又發佈了第二代64位元處理器A8,並將其用在iPhone 6上。從此,蘋果和高通就產生了差距。

由於2013年蘋果就推出了第一批64位元手機CPU,高通緊隨其後在2014年祭出自己的首款高階64位元CPU Snapdragon 810。但是由於當時技術不是太成熟,Snapdragon 810剛投入市場就出現很多問題,例如,由於Snapdragon 810發熱嚴重,溫度一高就鎖核,性能大打折扣…

為了追趕蘋果,高通再次發功,2015年高通把810的8核心砍掉4個並換上自主架構Kryo,於是820誕生了!不過還是和蘋果的A9有差距。怎麼辦呢?高通又在2016年推出820的「小改款」,那就是Snapdragon 821,但此時蘋果又推出了A10。然後在2018年,高通835處理器隆重登場,其綜合性能和蘋果A10打成平手,可是蘋果又推出了神經型態處理器A11…

問題分析

有網友解釋,蘋果和高通的CPU設計策略不同,就好比有兩個人都想要蓋房子,A買了一塊空地,而Q買了一幢老房子。A從頭開始建造的房子看上去很普通。Q把老房子裝修後得到的房子看上去「高大上」,但是內部結構仍然是那個老房子。

A蓋的房子是依需求設計,因此總體上得到了更好的設計、更好的通風、更多的陽光,還有獨立的車庫。Q受限於老房子的基本結構,而不得不在某些裝修上做出讓步。

這樣來看問題就比較明朗了。蘋果是購買Arm指令集架構(ISA)的授權(空地)而設計SoC,指令集是設計晶片的最低要求。而高通則是購買Arm核心(房子)的授權,這上面已經包含了指令集並進行了一定修改。這樣雖然更加有效,但是也讓修改的空間變得有限——如果從一開始就自己來做,那就不會有這個問題。

蘋果晶片的核心具有更多快取,並且其核心本身是每年客製的。蘋果採用的是2+4 big.LITTLE設計,而不是高通的1+3+4方法,這樣能夠實現更低功耗。A系列中的兩個大核心能夠實現更高性能,而其餘的四個小核心由於是客製而不是通用解決方案,因此能夠實現更高能效。與此相比,通用解決方案需要適配多個品牌的多款手機,其RAM、攝影鏡頭類型、螢幕解析度和刷新率等等不一。

此外,蘋果的一些晶片工程師來自世界各地,非常優秀,比如有些就曾在英特爾(Intel)、IBM等公司工作過。蘋果這些年在台積電等晶片代工廠方面也一直在大力投入,這也使得其先進製程晶片的代工能夠獲得優先安排。

這裡再對快取這一影響處理器性能的重要因素具體展開下:在Cortex-A75之前,Arm的Cortex處理器都沒有支援L3快取,但蘋果自從A7以來,一直在使用L3快取。A7和A8擁有1MB L2快取記憶體和4MB L3快取記憶體;A9和A10具有3MB L2快取和4MB L3快取。英特爾i5處理器的快取也不過如此,A11更是把二級快取提升到8MB。

雖然Cortex-A75支持L3快取,最多4MB L2和4MB L3快取,但是這些都是由高通的晶片製造商決定是否使用的。也有網友認為:單從處理器角度而言,高通的高階處理器(8XX系列)和蘋果A系列處理器綜合比較,性能差不多。

以下是在網路查找的Snapdragon 835和A10的性能評測資料:

在單核心性能方面蘋果佔優,主要是因為蘋果A10單核心面積要比Snapdragon大,整合的電晶體數量較具優勢。

蘋果A10是4核心,Snapdragon是8核心(最新的蘋果A11是6核心)。在多核心性能對比中,Snapdragon較優。實際上,應用程式大部分場景下都是單核心運作,所以蘋果的A10在用戶實際體驗中還是較具優勢。

GPU部分Snapdragon佔優。綜合比較而言,Snapdragon還稍稍有點優勢。但為什麼在實際體驗中,蘋果手機比Android手機要明顯流暢呢?這其實和作業系統架構有很大關係。

Google的Android系統,是以Linux為核心,在此基礎上增加了Java虛擬機器,所有的應用實際上是在這個虛擬機器上執行,這保證了應用程式的跨平台性,同時使用Java語言作為開發語言的程式師是全球數量最多的。Google也充分利用了這部分資源,使Android平台迅速聚集了最多開發者為其開發應用。

問題也就出在Java虛擬機器。瞭解Java虛擬機器的朋友們都知道,虛擬機器的好處是,程式師在開發程式的過程中,程式師不必關心記憶體資源回收的問題,虛擬機器的記憶體回收機制會處理這些問題,這樣極大的減輕了程式師的開發負擔。但缺點也同時存在,那就是虛擬機器在運作過程中,佔用很大系統資源。這也就是為什麼Android旗艦手機記憶體比蘋果手機記憶體大,但運作效果遠不如蘋果手機的主要原因。

蘋果iOS系統是在其私有的Unix基礎上演變過來,它不存在虛擬機器機制,同時iOS是一個封閉系統,蘋果對其硬體和iOS系統做了大量的最佳化和適配,保證了iOS應用高效的運作。而Android系統是一個開放系統,系統版本碎片化,導致硬體和軟體都有很多相容性問題,最終使得運作效率降低。所以,典型的以三星(Samsung)為代表,就用堆硬體來解決Android的運作效率問題。

長此以往,使人們認為,Android手機性能不如蘋果手機,進而認為高通不如蘋果A處理器。蘋果iOS系統回應優先順序中,螢幕回應為最高等級,這也是人們認為蘋果運作快的一個原因。

總結

綜上,EDN China認為,Snapdragon CPU與蘋果A系列存在差距的原因,可以歸納為以下幾點:

1.蘋果有經濟能力可以製造更貴的SoC,而可以從iPhone的最終售價中收回這筆錢。而Arm和高通卻不能;

2.蘋果CPU具有很大的快取。晶片要花錢,而對於某些晶片製造商來說,哪怕節省0.5mm2晶片面積,最終都決定了盈虧。因此,就晶片成本而言,蘋果可以製造更大的晶片,其中就包含大容量快取;

3.高通必須提高晶片的性價比,其他公司才會有興趣購買,因此,高通製造昂貴的晶片組行不通。

除非有以下情況發生,否則不太可能看到高通、三星或華為的SoC能夠勝過蘋果:

1.蘋果生產出一款失敗的SoC,這也意味著它將失去與其他OEM的競爭優勢;

2.有領先的晶片製造商不惜成本,決定設計一款大面積、大快取的CPU。

本文原刊登於EDN China

加入LINE@,最新消息一手掌握!

發表評論