在蘋果iPhone 5s的64位處理器一炮打響之后,手機似乎在一夜之間發(fā)生了大躍進。廠商們紛紛推出自家的64位手機處理器,64位手機已經(jīng)不是紙面上的概念,而是能買到的實實在在的產(chǎn)品。前段時間魅族科技高管自爆MX4 Pro未能搭載64位處理器比較遺憾,那么有必要嗎?
要知道,當(dāng)年家用電腦可是花了十多年才從32位進化到64位,智能手機這才短短幾年,變化就如此迅速,64位處理器對手機而言究竟有何含義?64位會快很多嗎?64位手機值不值得買?我們就以手機上的64位為話題,帶你剖開現(xiàn)象看本質(zhì)。
什么是64位?
先回答最基本的問題,什么是64位?衡量一個人的智商水平要看他的大腦,同樣,判斷手機是不是64位,也要看手機的“大腦”,這個大腦就是手機的CPU(中央處理器)。我們所說的64位手機,實際上是指使用了64位處理器的手機。
具體到處理器的內(nèi)部,64位處理器指邏輯算數(shù)單元、寄存器、總線寬度都是64位(8個字節(jié))的處理器。相比32位,64位能一次性處理更長的指令。有很多手機處理器都達到了這個標(biāo)準(zhǔn),比如高通驍龍410/615/810,蘋果的A7、A8,英特爾Atom等。
處理器的工作就是運行指令,因此,我們還必須提到“指令集”這個概念。處理器的計算和控制都是通過各種指令完成的,每款處理器在設(shè)計時就規(guī)定了一系列與其硬件電路相配合的指令系統(tǒng),這套指令的集合統(tǒng)稱指令集——你可以把它理解為處理器與外界溝通的語言。市面上有許多不同處理器指令集,就好比有些人的母語是英語,有些人的母語則是中文。
目前大多數(shù)64位手機處理器都使用ARM公司的ARMv8 64位指令集,只有英特爾的Atom處理器是例外,它采用了x86-64指令集,但英特爾在手機市場上的份額小得可憐,我們今天就直接略過它,專門來講講主流的ARMv8 64位手機。
ARMv8指令集是ARM公司專門針對手機、移動和嵌入式設(shè)備推出的64位指令集,它包含了AArch64、AArch32兩種主要執(zhí)行狀態(tài)??疵帜憔椭懒?,AArch64專注于64位處理,AArch32則用來支持現(xiàn)有的32位ARM指令集。從這個角度來看ARMv8是一套不錯的指令集,它既支持未來的64位程序,也向下兼容現(xiàn)有32位程序。有了ARMv8的支撐,以后的64位手機操作系統(tǒng),如Android L 64bit都可以簡單、高效地支持現(xiàn)有的32位App,你不用擔(dān)心兼容性問題。
為了幫助合作伙伴們更好更快的拿出有競爭力的產(chǎn)品,ARM還專門制作了兩個支持ARMv8指令集的處理器參考架構(gòu):Cortex-A53和Cortex-A57。如果說ARMv8指令集是一門語言,Cortex-A53和Cortex-A57就是基于這門語言的習(xí)題冊,ARM這位“老師”利用ARMv8布置了一道道“題目”,廠商們只要照著做,就能生產(chǎn)出處理器成品了。
64真的比32位快一倍?
這是一個經(jīng)常被提起的問題,64位真的要比32位快一倍嗎?答案當(dāng)然是NO,但原因很少有人講得清楚。記住下面這三條理由,下次跟朋友聊手機時你的逼格會提升很多。
首先,指令集不是1+1=2這么簡單,指令的長度并不直接等于性能。盡管從數(shù)字上看,64位指令的確要比32位指令更長,但很多時候我們并不需要那么復(fù)雜的指令。一個應(yīng)用程序(App)擁有成千上萬行代碼,CPU在執(zhí)行每條代碼時又會把它分割成無數(shù)條指令,編譯器會自動決定怎樣將指令組合起來最高效,它們并非都需要64位的字長。
一個典型的例子就是ARMv8指令集的數(shù)據(jù)模型。ARM在官方白皮書中指出,即使在純64位模式下,ARMv8指令集數(shù)據(jù)模型中也并非每個指令都要求64位格式。另外,官方白皮書還提到,ARMv8指令集架構(gòu)定義的指令長度并非64位,而是標(biāo)準(zhǔn)的32位定長。這些事實告訴我們,指令集并非越長越好。
其次,唯處理器論性能,太片面了。比如,玩大型3D游戲,GPU(圖形處理器)會更加影響幀數(shù);而拍攝高清照片/4K視頻時,DSP(可編程信號處理器)則事關(guān)重大。手機的SoC是包含CPU、GPU、DSP、通訊模塊等大量功能的集合體,不同的應(yīng)用場景會側(cè)重于不同部件,單獨以CPU一個部件來衡量性能未免太過片面。
最后,64位確實好,但程序本身的支持更重要。前面我已經(jīng)提到,ARMv8 64位指令集包含AArch64、AArch32兩種主要執(zhí)行狀態(tài),如果不針對AArch64重新編寫程序,那么程序默認就會在AArch32狀態(tài)下運行——也就是說,現(xiàn)在的App都是32位的,跟64位一毛錢關(guān)系都沒有,在64位處理器上運行32位程序,性能不會有任何提升。
64位手機好處都有啥?
廠商們花了這么大力氣投資64位計算,它當(dāng)然不可能一無是處。那么問題來了,64位手機好處究竟都有啥?下面這三個關(guān)鍵點,你應(yīng)該好好記住,它們能幫你更好的選購自己的愛機,同樣也能成為你茶余飯后的談資。
1、64位支持更大的內(nèi)存
支持更大的內(nèi)存可以算64位處理器帶來的最立竿見影的提升了。處理器字長不但影響置零件的長度,還影響尋址空間。目前32位ARM處理器的尋址空間最大為4GB,算上系統(tǒng)占用的空間,內(nèi)存最多3.5GB就是極限了。顯然,對于越來越龐大復(fù)雜的系統(tǒng)和App而言,這是遠遠不夠的。
而64位ARMv8處理器徹底解決了這個問題,定位高端的Cortex A57架構(gòu)支持最多48位尋址,而面向中低端的Cortex A53則支持40位尋址。雖然沒有做到徹徹底底的64位,但48位尋址可以支持最多16EB(1EB=1024TB=1048576GB)內(nèi)存,40位尋址支持的內(nèi)存容量也以TB為單位計算。在可以預(yù)見的未來,內(nèi)存容量瓶頸在64位手機上將不復(fù)存在。
2、64位是在為未來投資
64位處理器支持再多內(nèi)存,現(xiàn)階段手機內(nèi)存容量也不會超過4GB,有沒有更實在一些的好處?答案也是肯定的。
首先,ARMv8 64位處理器支持更多更強的通用寄存器(GPR),GPR個數(shù)從16個增加到31個,每一個都可以隨時訪問,寬度也拓展位64位。同時,ARMv8的NEON SIMD浮點指令集也得到了加強,它擁有32個128bit寬度寄存器、支持雙精度浮點執(zhí)行、完整支持IEEE754標(biāo)準(zhǔn)。
更多的寄存器意味著處理流程的“堵塞”現(xiàn)象大大減少了。過去,由于寄存器數(shù)量限制,一條指令往往要被拆成兩個步驟執(zhí)行,而有了足夠多的寄存器,處理器就能在更少的周期內(nèi)搞定指令,體現(xiàn)到App里,就是打開更快、等待時間更少、運行更流暢。
其次,ARMv8指令集引入了AES、SHA-1、SHA-256硬件加密功能,這就好比把原來由手工的加密動作扔給了機械完成,效率提升極大。如果未來有人腦凍打開,開發(fā)一個手機版的bitlocker加密/解密軟件,64位處理器比32位快上10倍也不是沒可能。
說到底,更多、更強大的寄存器,更好的硬件加密功能,這些都需要App本身提供支持。還好,ARMv8是下一代64位手機必然的發(fā)展方向,ARM公司早已將相關(guān)開發(fā)規(guī)范分發(fā)給了開發(fā)者,谷歌Android L系統(tǒng)就推出了專門的64位版本。在可以預(yù)見的未來,我們還是有不小希望能用上真正發(fā)揮64位優(yōu)勢的App的。換個角度而言,64位處理器能更好的適應(yīng)未來。
3、64位處理器本身就更先進
就算不談64位,市面上那些64位處理器本身的硬件架構(gòu)也更先進。這句話聽起來是不是有些別扭?事實就是這樣的。ARM總共有兩個支持ARMv8 64位指令集的處理器參考架構(gòu):Cortex-A53和Cortex-A57,目前市面上絕大多數(shù)64位處理器都遵循這兩個架構(gòu)開發(fā)而來,我們手頭這臺中興V5 Max搭載的高通驍龍410處理器就基于Cortex-A53,它一共有四個核心,運行頻率1.2GHz。
相比上一代Cortex-A7和Cortex-A15,Cortex-A53和Cortex-A57擁有并行度更高的流水線、準(zhǔn)確率更高的分支預(yù)測單元、命中率更高的緩存、更大的內(nèi)部總線帶寬??傊?,就像剛剛裝修過的房子一樣,A53和A57在各個方面都有了進步。
按照ARM官方的說法,如果使用最新工藝,A53相對于A7的性能可以達到1.6-1.7倍左右。而A57更是可以達到幾乎2倍于A15的相對性能。同時,即使在32位的軟件環(huán)節(jié)下,A53和A57也更快——因為除了64位指令集,它們的硬件本身也經(jīng)過強化。
現(xiàn)在應(yīng)不應(yīng)該買64位手機?
看完上面的介紹,也許你還在猶豫:現(xiàn)在有沒有必要購買64位手機?我們的答案很簡單:看價格。顯然,作為一個新概念,剛剛誕生的64位安卓手機價格并沒有高高在上,許多廠商更是直接將64位手機的價格殺入了千元以下。類似的功能,類似的價格,它的價格與那些32位的手機并沒有太多區(qū)別。
所以我們的結(jié)論是:如果需要花費大量額外的價錢去購買一臺64位手機,你當(dāng)然應(yīng)該說NO;但如果性能功能現(xiàn)階段持平,未來有可以預(yù)期的提升,而價格與32位產(chǎn)品保持一致,買一臺64位手機,何樂而不為?
(審核編輯: 智匯張瑜)
分享