你真需要64位手機?三項測試揭曉答案
2015-04-24 09:13:16 手機中國周末給朋友攢了臺電腦,6000塊錢的主機讓筆者為這個只聊QQ和玩網頁游戲的壕友感到拙計。更讓我淚奔的是,他非要裝XP系統,還號稱XP有情懷 用的慣。稍微懂點的朋友都了解,Windows XP好用的只有32位版本,64位兼容性不是一般的差基本可以無視。也就是說,它只能識別不到4+GB內存,對于壕友這16GB內存主機簡直是暴殄天物, 這一來一回相當于白扔了12GB內存。
開導了半天裝了64位Win7之后,筆者也突然意識到,不是所有人都了解硬件,真的有必要科普一些常識了。
土豪的世界真心挺難懂的
從硬件配置結構來看,現在的智能手機和PC并無二致,同樣是處理器、內存、內置存儲(硬盤)、顯卡(集成GPU)、電源(電池)這些主要硬件,所以相關知識也是共通的。
隨著Android 5.0系統的逐漸普及,有關64位處理器和64位系統的各種問題成為熱門,性能到底提升多少是大家最關心的話題。
其實有關64位架構的種種問題,早在PC剛剛普及64位CPU的時候就已經解答過了,但鑒于手機和PC存在不小的差異,有一些問題還是要單提出來分析的。
到底64位處理器配合64位系統有沒有質的提升?相比之前32位時代又有哪些進步呢?落實到實際表現又如何呢?想知道?那就繼續往下看吧。
手機64位處理器是什么鬼?
到底什么是64位處理器呢?具體到處理器內部,64位就是邏輯算數單元、寄存器和總線寬度都是64位(也就是8個字節),相比32位而言能夠處理更長的指令(32位是最長指令為2的32次方,而64位可處理的最長指令的2的64次方)。
那么也就是說,如果32位處理器和64位處理器同時運行一個32位(4個字節)的指令時,兩者理論速度是沒有差別的,因為大家都可以完整的運行這一長度的指令,但如果它們同時運行64位(8個字節)指令,32位處理器就會因為無法識別64位長度需要拆分后再運行,而且還會有很大可能無法識別,而64位處理器就完全沒問題。
這種感覺就像小學生和大學生做題,只做1+1的話是看不出兩者的區別的,但隨便來一個微積分相關的題目就高下立判了。
在運行指令時,還要涉及到一個名為指令集這個東西。所謂指令集就是存儲在CPU內部,對CPU運算進行指導和優化的硬程序。擁有這些指令集,CPU就可以更高效地運行。
ARM ARMv8架構就擁有A32、A64和T32三個主要指令集。
ARMv8中的指令集包含AArch64、AArch32兩種主要執行狀態,其中AArch64是專門用于64位處理的,AArch32則是用來支持32位ARM指令集的,所以說ARMv8指令集是一套兼容性很強的指令集,向上支持64位,向下還能照顧32位。
不過在ARMv8指令集下,64位系統運行32位應用還是容易出現兼容性問題(主要是含lib庫開發的應用,純Java開發的不存在不兼容的問題)。
Cortex-A57內部結構
Cortex-A53內部結構
當然就目前來看,基于32位指令開發的應用仍是壓倒性優勢,所以指望64位處理器能有明顯的進步還得過一段時間才行。理論上64位處理器搭配64位系統運行64位軟件,執行效率將成倍提升,這也將是未來的發展趨勢。
除了能夠處理更長的指令之外,64位處理器還能夠使用64位整型數據尋址,簡單來說就是可以支持更大的運行內存,理論最大值可達16EB(17179869184GB),我們可以理解成是內存無上限。
而32位系統大家都熟悉,理論最大支持4GB內存。這樣的差距就非常之明顯了,即便是短期內主流手機運行內存不會突破4GB,但相信哪個廠商都不想面對這個已知的天花板。
A53相較A7性能全面提升
A57相較A15升級不小
之于現在的手機產品,搭載Android 5.0系統的手機對于64位處理器的支持是最好的,因為它能夠很好的支持ARMv8和64位平臺,這是Android 4.4所做不到的,也是5.0版本的重要升級項,倘若開發者針對64位處理器對應用進行優化的話,應用運行速度會更快,效率會更高。
由此我們可以得到一個結論,64位處理器的優勢很明顯,支持更長的指令和更大的內存是它最直觀的表現。當64位處理器運行在64位系統下時,可以發揮它100%的性能體驗,在此狀態下運行基于64位指令開發的軟件時,效率是最高的。
即便是運行32位指令開發的軟件,64位處理器也會因為有專門的32位指令集,所以并不會有不兼容的現象,但執行效率肯定沒有前者高。