64位的移動計算時代就要到來了

64位計算的歷史相當豐富有趣。Cray等公司在70年代就已經開始在自己的系統當中使用64位寄存器,但真正純粹的64位計算直到90年代才真正到來。 首先是MIPS的R4000,然後是DEC的Alpha處理器。到90年代中期,英特爾和Sun都已經擁有64位設計。而對於消費者來說,真正的轉折點是 AMD在2003年發佈了一款兼容英特爾32位x86處理器的64位PC處理器。


再 向前快進10年,PC銷量不斷下滑,大部分智能手機和平板電腦都擁有了主頻在1-2GHz之間的多核心處理器。但它們使用的都是32位架構,而非現代PC 和服務器所使用的64位架構。到現在爲止,這都是可以接受的。智能手機並不會去和PC拼性能,這些處理器需要足夠節能,以實現續航的最大化。

 

但是,隨着設備的發展和新技術——語音識別、3D遊戲和高分辨率顯示屏——逐漸普及,32位處理器的能力已經漸漸被推到了極限。


ARM 看到了64位節能處理器的需求,並在正式發佈ARMv8-A架構(首個包含64位指令集的ARM架構)之前就早早開始了新設計的開發,還從其他選擇發展 64位技術的芯片設計廠商那裏學習到了經驗和教訓。ARM的新款64位架構具備對於旗下32位架構的全面兼容,這意味着如果處理器運行於64位系統,它就 可以運行未修改的ARMv7 32位二進制文件。對於Android來說,這意味着一旦內核被移植到64位(多虧了Linaro,它們已經如此了),系統的其餘部分,從核心庫到應用再 到遊戲,都是可以在32位或64位之間進行切換的。

 

去年,蘋果憑藉着iPhone 5s的全新64位A7處理器震驚了整個移動領域。A7採用了蘋果設計的ARMv8雙核處理器,名爲Cyclone。它使用了兩個64KB L1緩存(供兩個核心分別使用),一個1MB L2緩存(被兩個核心所分享)和一個4MB L3緩存(爲整個SoC所用)。蘋果擁有ARM架構授權,這意味着它可以從頭開始設計自己的處理器,但前提是這些處理器必須是ARM兼容的。ARM擁有一 套測試套件,用以檢查這些處理器是否具備兼容性。

 

在未來幾個月裏,我們將會看到高通、聯發科和三星紛紛推出自己的64位ARM處理器。再考慮到Android在64位化的努力,用不了多久我們就將看到運行於64位Android系統的64位設備了。但對於開發者和終端用戶來說,64位處理器意味着什麼呢?

 

受益於ARM的64位架構


每 一部CPU的中心都是一套寄存器,他們都是用以存儲數字和地址的內部存儲插槽。當執行復雜任務時,這些插槽會被反覆使用。如果所有的寄存器都處於佔用狀 態,那麼處理的唯一方式是將其中一個寄存器存儲在內存當中,使用寄存器進行下一個任務,然後再從內存當中重新載入之前的值。對於人類來說,這一切都發生在 一瞬間。但對於處理器來說,這實際上是一個非常耗時的順序,並不十分效率。

 

32位ARMv7架構擁有15個通用的寄存器,每一個都有32位 寬。而ARMv8架構擁有31個通用寄存器,每一個爲64位寬。這就意味着優化代碼使用內部寄存器的頻率應該要比內存更高,同時也可以保留更大的數字和地 址。結果就是,ARM的64位處理器在運行速度上會更快一些。

 

在能效上面,64位寄存器的使用並不會提升功耗。在某些情況下,64位核心執行部分任務的速度會更快一些,由於運行時間的減少,這也就會使其顯得比32位核心更加節能。

 

尋 址(Addressing)是64位處理器的另一個層面。在PC和服務器領域,32位的侷限主要在可訪問的內存上。如果你想要使用超過4GB的內存,就需 要使用64位處理器。因爲可以使用大物理地址拓展(LPAE),某些ARMv7處理器能夠使用超過4GB內存,所以嚴格來講,內存的限制並不是ARM處理 器所遭遇的問題。由於LPAE的存在,Cortex-A15處理器能夠處理1024GB內存,而64位的處理能力更是高達200萬TB。因此在短時間內, 任何一部智能手機都不需要完整的64位尋址。追求永遠都不會被用到的尋址空間是毫無意義的,因此ARMv8架構採用了48位尋址,這已經是256TB了。

 

雖 然沒有什麼程序或遊戲會用到TB級別的內存,但在另一方面,這種尋址能力又非常重要。現代3D遊戲通常都帶有大量的資源,當擁有超過4GB的可訪問空間 時,這些資源能夠被更加輕鬆地進行內存映射。這樣一來,遊戲的運行速度會得到提升,並讓直接訪問遊戲多媒體資源成爲可能。

 

不只是智能手機和平板

 

ARM 上64位計算的好處並不僅限於智能手機和平板電腦。ARM的生態系統很廣闊,他們的處理器也被許多不同類型的設備所使用。服務器市場是ARM處理器影響力 有限的一個領域。信息時代的發展讓維持數據中心所消耗的能源持續快速增長,而任何能夠降低能源使用的技術都是對於資金和自然資源的節省。除了節能之外,在 服務器當中使用64位ARM芯片還有其他的好處。這些服務器都會被動散熱,這意味着你可以將它們集中在一起,而無需擔心會發生過熱的情況。這樣一來,用於 散熱上的花費也將有所降低。

 

至於服務器軟件,Linux這樣的操作系統已經是64位的了,其主線內核當中也已經加入了對於ARMv8的支持。這也就是說,製作運行於64位Linux、ARM處理器的服務器並不會很困難。

 

總結

 

多虧了ARM,64位的移動計算時代就要到來了。這些新的處理器不僅速度更快,還爲移動平臺開啓了更多的可能性。

 

從32位向64位的遷移道路已經被鋪就,無論是什麼操作系統,開發者從32位進入64位都不會有任何意外。

 

在未來幾個月裏,ARM的合作伙伴都將推出Cortex-A53和Cortex-A57處理器。當中有的會採用雙核或四核的標準配置,也有的會選擇big.LITTLE配置。但有一點是肯定的,那就是這對於ARM和普通用戶來說都是一個激動人心的時刻。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章