x86手機跑Android好嗎?x86處理器相容ARM架構App的秘密

x86手機跑Android好嗎?x86處理器相容ARM架構App的秘密

ADVERTISEMENT

華碩低價位帶手機ZenFone一推出就掀起市場話題,除台灣訂價與規格在中國發表之後掀起一陣波濤,許多人也對ZenFone所採用的Intel Atom處理器有所意見,深怕其相容性問題無法正確執行應用程式App,這究竟是怎麼回事呢?

Intel近幾年一直很想進軍手機或是平板的行動市場,特別是採用Android作業系統這一塊大餅(忘了MeeGo吧!),所採取的戰術便是盡量降低Atom系列處理器的功耗,使其符合手機長時間待機的要求,實際使用第一世代的產品即為Atom Z24x0系列,而Asus ZenFone則是採用第二世代的產品,Atom Z25x0系列。相較於前代,Z25x0變成雙核心四執行緒,GPU的部分則是從PowerVR SGX540大幅升級至PowerVR SGX544MP2。

ARM在手機上奠定基礎

Android起初發展之際,並沒有限定在何種平台上執行,只不過在當時的時空環境背景因素下,第一台市售Android手機HTC Dream(G1)採用了Qualcomm MSM7201A,這是款ARMv6指令集的產品。

之後的情形大家都曉得了,ARM開始如日中天,絕大部分Android手機皆採用相容ARM指令集的應用處理器(少數為MIPS指令集),Apple的iPhone和iPad系列產品更是全程採用。在這後PC時代,Intel於行動裝置市場的影響力實在不大,過去還有XScale這個產品線可在PDA上佔有一席之地,甚至它的高效能吸引了不少人指定購買,但之後Intel把XScale賣給了Marvell,也就沒有適合手機使用的處理器了。

Atom被抓來打ARM

在2011年9月時,Intel和Google共同發表聲明,兩者將一同最佳化未來Android版本在x86系統上的表現;也就是說,原本用在netbook和UMPC上的Atom處理器,現在也要進軍手機市場了。

不過針對半路殺出的Intel x86架構,市場上已經有許多應用程式針對ARM最佳化,若是像採用MIPS架構的Android裝置一樣,程式相容性不佳的話,大概也就能直接判斷Atom出師未捷身先死,所以Intel製作了Binary Translation這個中介轉譯層,用以相容ARM最佳化的程式。

x86手機跑Android好嗎?x86處理器相容ARM架構App的秘密
▲如果Android程式以Java寫成並丟入Dalvik虛擬機執行,在使用Intel Atom的Android手機中執行絕大部分沒有問題。

x86架構如何相容ARM程式

要了解Binary Translation的原理,首先要了解Android程式是如何運作的。起先Android程式皆使用Eclipse開發環境和Android SDK,以Java語言寫成,經過封裝轉換成Bytecode後丟入Android裝置中,1個稱為Dalvik的虛擬機器中執行。

不過稍微了解程式運作的人都知道,虛擬機雖然能夠帶來跨平台、不限硬體規格執行的好處,但同時也會因為虛擬機器的轉換,降低執行效率。因此後來Andriod除了SDK(Software Development Kit)以外,也推出NDK(Native Development Kit),讓開發人員能夠繞過Dalvik轉譯造成的效能損失,同時又能夠使用Java以外的程式語言撰寫(如C/C++)。

由於程式經過NDK轉譯之後,出來的東西是硬體能夠直接執行的機器碼,執行效率較高,但同時帶來了相容性的問題--編譯給ARM處理器的機器碼一定跟編譯給x86處理器的不一樣,這就導致Intel的Atom處理器無法正常執行部分程式(通常是3D遊戲,因為這些程式對於效能要求較高)。如果Intel放棄掉這些程式,想必消費者絕對無法接受,於是便有了Binary Translation這個中介轉譯層,可把ARM的機器碼轉給x86執行。

x86手機跑Android好嗎?x86處理器相容ARM架構App的秘密
▲Intel Binary Translator用來轉換那些使用ARM NDK的應用程式,讓他們能夠在Intel Atom上正確執行。

ARM本身也有相容性問題

有了Binary Translation的關係,所以Intel Atom能夠執行已對ARM處理器編譯的程式,但是效能會比在ARM處理器執行時略為下降,同時此Binary Translation也並非100%完全相容,偶爾也會有無法執行或是執行到一半跳出的情況。

但也別以為ARM本身不會出現相容性問題,因為ARM採用授權方式,因此各家處理器的GPU部分並不相同,例如Qualcomm使用自家的Adreno、NVIDIA使用GeForce ULP、Samsung使用ARM的Mali或是PowerVR的SGX,由於GPU對於規格的支援度不同(如材質壓縮格式),導致各方也必須為不同的應用處理器推出不同的版本,這現象在3D遊戲中特別嚴重。

開發商態度才是關鍵

目前Android市場上還是以ARM處理器的手機為大宗,如果開發商無力支援各平台,當然會以市占最大的裝置作為考量,以便在最小成本中謀取最大利益,有而外的經費才去針對不同的硬體調整程式碼。

但相較於應用程式相容性,小編其實比較在意Intel Atom的續航力,目前市面上採用Intel Atom的手機都還在Z24x0和Z25x0的規格,就筆者的測試經驗來說,續航力普遍都比採用ARM處理器的手機短。

x86手機跑Android好嗎?x86處理器相容ARM架構App的秘密
▲以Asus ZenFone 5(版本號碼ASUS_T00F_TW_user_20140327_4.3.2.935705)為例,筆者只有遇到Basemark X 1.1無法正確執行而已。

延伸閱讀:

Android 架構之亂,x86 挑戰ARM 大軍,效能、相容性、續航力完全測試

亂序執行有搞頭?新Atom 規格洩漏,2014年見

Intel在台展示Atom Z3000系列平板,效能逼近ARM高階型號!

R.F.
作者

誤入叢林的小白兔,每天爬樓梯到七樓的白癡,幻想自己很瘦的豬,一放假就睡死的bed potato。

使用 Facebook 留言
MOOMS
1.  MOOMS (發表於 2014年5月04日 11:14)
很少人注意到這部分的影響,還有一點intel用32nm製程,感覺只是來試水溫,沒什麼誠意。
scsa3
2.  scsa3 (發表於 2014年5月04日 11:59)
※ 引述《MOOMS》的留言:
> 很少人注意到這部分的影響,還有一點intel用32nm製程,感覺只是來試水溫,沒什麼誠意。

其他ARM系都用28而已
難道你要INTEL用22來拚嗎?
阿宗
4.  阿宗 (發表於 2014年5月05日 00:26)
另外內建電池也有缺點,隨著電池使用久一定會衰退每下愈況,變成低電壓後很多程式執行起來很吃力也容易當機,成了必須長期依賴龐大的行動電源,除了攜帶不方便外,幾乎又要花一筆不小錢的更換電池費用還須找時間自行送去更換不方便性,螢幕越亮的手機簡直就是吃電怪獸。

可以更換電池的好處輕巧攜帶方便及隨時都可以馬上自行更換便利性,這跟容量多大是沒有直接關係。


yuankwei
5.  yuankwei (發表於 2014年5月06日 14:50)
※ 引述《scsa3》的留言:
> ※ 引述《MOOMS》的留言:
> > 很少人注意到這部分的影響,還有一點intel用32nm製程,感覺只是來試水溫,沒什麼誠意。
>
> 其他ARM系都用28而已
> 難道你要INTEL用22來拚嗎?

Intel 如果想要打進行動這塊市場,當然要拿出一點誠意
都已經進展到14nm了,要求22nm很過分嗎?
發表回應
謹慎發言,尊重彼此。按此展開留言規則