64 位 ARM 處理器意味著什麼?

Web開發者發表於2014-09-15

  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和普通使用者來說都是一個激動人心的時刻。

  來源:Android Authority/騰訊數碼

相關文章