首頁 -> 網絡技術 -> 技術前哨 -> 正文
淺談64bit ARM CPU 指令集及架構

《中無通訊》第67期 文︰ 世界網絡 www.581895.tw 林和安 小洛夫

imageimage

64bit CPU并不是甚么新的事物,服務器/工作站早已是64bit的天下,即使桌面計算機也紛紛升級64bit CPU及64bit操作系統。作為移動設備市場的領導者,ARM也決定在2014年推出64bit ARM CPU架構,實現智能手機、平板計算機的一次性能飛躍,又會為市場帶來多大的影響呢?

走向64bit的主因支持更多內存

ARM架構一向以低功耗作主打,為此不惜把CPU架構盡量作出精簡,取消作用不大的單元。早期ARMv4指令為求低功耗,沒有FP浮點、復雜math指令及SIMD,十分簡陋。隨后ARM陸續加上以上的功能,而自Cortex-A9以后,用戶要求更高性能的處理器,滿足高清影片播放、瀏覽網頁以至多任務工作環境,即在智能手機上同時打開3-4項應 用,占用大量的CPU及內存資源,尤以內存為甚。因為智能手機沒有硬盤,大部份的數據都需要從內存中讀取,使4GB的尋址上限顯得足襟見肘,而且智能手機因為空間有限需要GPU及CPU共享地址空間,與PC的GPU及CPU擁有不同的地址空間不同,無形中增加內存資源的占用。在Cortex-A15發布時,ARM嘗試引入Physical Address Extensions技術,把CPU可尋址的空間從32bit擴充至40bit,最大內存尋址從4GB擴充至1TB,暫緩了內存上限問題。不過引入Physical Address Extensions的做法治標不治本,因為Physical Address Extensions是以4KB page mapping即映像的方式支持4GB以上的內存,不但較為復雜而且不能支持單個4GB以上的應用,需把數據拆分處理。另一方面,ARM在引入Cortex-A15的同時加入Virtualization虛擬功能,這又增加對內存的需求,最終步x86后塵走上64bit之路,也十分合理。

image

在ARM架構的演進中,ARMv8A最大的改變是支持64bit。

并未真正64bit?

在IT的世界,功能是要付出成本的,所以廠商普遍采用能省便省的做法。ARM引入64bit主要目的是要支持更多內存,為進軍服務器、工作站市場作準備。不過ARM也意識到用戶未必需要用到64bit上限的16EB內存,所以選擇了x86-64的做法,僅支持至48bit Virtual Memory,相當于256TB內存。對于ARM的做法,作為一名計算機愛好者難免有所失望,但考慮到目前主流內存容量在8-16GB左右,加上操作系統如Windows 7 Ultimate也僅支持至192GB,ARM的做法也無可厚非。

全新設計的A64指令集

ARM在2007年已著手設計工作,并于2011年11月公報ARMv8A 64bit指令集架構,耗用了4年的研發時間,時間可謂不過不失。

ARMv8A分為A64及A32兩個部分,A64顧名思義屬于64bit的部份,主要存在于AARCH64的狀態。而A32又稱AARCH32狀態,用作支持現有A32 ARM指令集。ARM并沒有采用AMD x86-64及Intel EM64T擴充32bit指令做法,而是選擇全新開發專用的64bit指令。據ARM方面表示,這一做法與省電的考慮有關,當運行64bit ISA時,ARMv7電路可處于閑置狀態,節省功耗。同A64 ISA也移除了作用不大的LDM/STM(load/store multiple)指令,改為LD/ST ’P’指令,以降低復雜性及功耗,與此同時,32bit到64bit狀態轉換采用Inter-processing的做法,確保32bit到64bit指令皆可順利執行。

新增Registers及支援DP浮點

ARMv8A架構新增了31個64bit通用寄存器(General Purpose Registers),改進排程選項以針對復雜軟件。同時,還新增32個128bit Registers,用作執行SIMD。ARMv8A除了可執行單精度(Single Precision)FP數據外,新增支持雙精度(Double Precision)FP數據,而且新增了IEEE754-2008 FP指令,如MaxNum/MinNum等等。此外ARMv8A還把FPU及SIMD變成常設功能,軟件不用檢測是否有相關功能。提供Cryptography加密指令,而且是以128bit SIMD Registers執行,可在每周期同時執行2個AES encode/decode指令,或4個SHA-1/SHA-256 Hash。

最后,雖然ARMv8A以64bit為主,但對于32bit的AArch32狀態也有所加強。如新增的Cryptography及IEEE754-2008 FP指令,Load acquire/store release`等等皆有幫提供32bit下的性能。

image

新增的31個64bit General Purpose Registers及32個128bit SIMD Registers。

image

提供Cryptography加密指令,且是在128bit SIMD Registers內進行。

image

ARMv8A強化了內存管理,Virtual Address及Physical Address從40bit增至48bit,支持更大容量內存。

率先登場的兩款64bit ARM處理器

在完成了64bit指令集的定義后,ARM也隨即在2012年推出了兩款64bit ARM—Cortex-A57及A53產品。該兩款產品自去年發布以外,不但獲得ARM陣營的強烈支持,也吸引了AMD推出同時支持x86及ARM的64bit Server CPU,氣勢如日方中。踏入2013年4月,ARM與TSMC宣布成功流片(Tape Out)Cortex-A57處理器,標志著64bit ARM成品已離我們不遠。

最多16個核心同時運算

相比于32bit ARM,64bit ARM定位更多在服務器市場,所以Cortex-A57及A53除了是可集成4個核心的SoC外,也支持多機以Clusters串連共16個核心工作,大大提升運算性能。另外,在64bit方面,Cortex-A57及A53皆擁有ARMv8架構的完整功能,如新增的31個64bit通用寄存器GPR及128bit SIMD,支持雙精度浮點運算(Double Precision FP)等等,兩者的分別在于設計理念的不同,表現為數據處理性能會的差別。

image

Cortex-A57及A53可用clusters的方法支持4機共16個核心。

以效能為主Cortex-A57

Cortex-A57是一顆重效能的CPU,其設計主要沿自Cortex-A15,如3路譯碼器及15+ stage亂序執行管線(Out-of-Order Pipelines),不過借著ARM所作的優化,如數據預取及增加Registers等等,在處理32bit軟件也比Cortex-A15快20-30%左右。

在數據處理方面,Cortex-A57提供遠高于Cortex-A53的性能。首先是在管線的設計上,Cortex-A57管線stage較多(15+ vs 8),而且是亂序執行管線(Out-of-Order Pipelines),比Cortex-A53的簡單按序執行管線(Simpe In-Order Pipelines)尤其適合處理大量數據的環境。另外,它擁有更多的L1&L2 Caceh,要求至少48KB I-Cache、32KB D-Cache及512KB L2 Cache,對比之下,Cortex-A53為8KB I-Cache、8KB D-Cache及128KB L2 Cache。而且在尋址能力方面,Cortex-A57為44b,相當于支持最多256GB內存。至于Cortex-A53為40b,相當于支持64GB內存。

image

Cortex-A57架構圖。

強調比A9細的Cortex-A53

Cortex-A53是在提供足夠的性能下,盡量縮小芯片面積及功耗的產品,所以它并沒有采用Cortex-A57較耗電的亂序執行管線設計,改用簡單按序執行管線設計。Cortex-A53提供目前主流Cortex-A9等級的效能,但芯片面積更小,可在同制程下比Cortex-A9細40%,如果使用20nm制程的話,面積僅為32nm Cortex-A9的1/4,有助降低成本同時也可降低功耗。

image

Cortex-A53架構圖。

image

Cortex-A53設計強調較Cortex-A9小的核心面積。

第二代big.LITTLE

Cortex-A57 & A53也會沿用Cortex-A15 & A7的big.LITTLE技術,因應需要而決定使用高性能的big核心或使用高節能的LITTLE。不過在配置上,Cortex-A57 & A53較有彈性,除了可使用4(big) + 4(LITTLE)外,也可使用2(big) + 4(LITTLE)的配置。筆者認為,考慮到Cortex-A57與Cortex-A53性能差距明顯,即使是4個Cortex-A53也遠不及2個Cortex-A57的性能,所以增加LITTLE核心數目顯得十分重要。

image

第二代big.LITTLE新增了2(big) + 4(LITTLE)的配置。

image

image

根據ARM公布的路線圖,2014-2015年還有一款新的32bit ARM處理器—Cortex-A12推出。

結論︰ARM選擇降低風險

進入64bit年代,ARM很大程度上在現有的架構下加上64bit ARMv8指令架構。所以Cortex-A57 & A53,很大程度上是現在Cortex-A15 & A7的延續?梢夾RM首要的工作是確保64bit架構的成功,其余部分盡量采用現有的設計以降低風險。

與此同時,ARM也留了后路,2014-2015年還有一款新的32bit ARM處理器Cortex-A12?梢娒鎸Ω偁幖ち业腎T市場,誰也沒有必勝的把握,不得不小心應對。

文章搜索

覆蓋全國各省會城市及海外城市的網速測試
→選擇要測試的地區
→選擇目標測試點
>> 測試點注冊
时时彩计划