《中無通訊》第67期 文︰ 世界網絡 www.linkwan.com 林和安 小洛夫 64bit CPU并不是甚么新的事物,服務器/工作站早已是64bit的天下,即使桌面計算機也紛紛升級64bit CPU及64bit操作系統,。作為移動設備市場的領導者,,ARM也決定在2014年推出64bit ARM CPU架構,實現智能手機,、平板計算機的一次性能飛躍,,又會為市場帶來多大的影響呢? 走向64bit的主因—支持更多內存 ARM架構一向以低功耗作主打,,為此不惜把CPU架構盡量作出精簡,,取消作用不大的單元。早期ARMv4指令為求低功耗,,沒有FP浮點,、復雜math指令及SIMD,十分簡陋,。隨后ARM陸續(xù)加上以上的功能,,而自Cortex-A9以后,用戶要求更高性能的處理器,,滿足高清影片播放,、瀏覽網頁以至多任務工作環(huán)境,即在智能手機上同時打開3-4項應 用,,占用大量的CPU及內存資源,,尤以內存為甚。因為智能手機沒有硬盤,,大部份的數據都需要從內存中讀取,,使4GB的尋址上限顯得足襟見肘,而且智能手機因為空間有限需要GPU及CPU共享地址空間,,與PC的GPU及CPU擁有不同的地址空間不同,,無形中增加內存資源的占用。在Cortex-A15發(fā)布時,,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之路,也十分合理,。 在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年的研發(fā)時間,,時間可謂不過不失,。 ARMv8A分為A64及A32兩個部分,A64顧名思義屬于64bit的部份,,主要存在于AARCH64的狀態(tài),。而A32又稱AARCH32狀態(tài),用作支持現有A32 ARM指令集,。ARM并沒有采用AMD x86-64及Intel EM64T擴充32bit指令做法,,而是選擇全新開發(fā)專用的64bit指令。據ARM方面表示,,這一做法與省電的考慮有關,,當運行64bit ISA時,ARMv7電路可處于閑置狀態(tài),,節(jié)省功耗,。同A64 ISA也移除了作用不大的LDM/STM(load/store multiple)指令,改為LD/ST ’P’指令,,以降低復雜性及功耗,,與此同時,32bit到64bit狀態(tài)轉換采用Inter-processing的做法,確保32bit到64bit指令皆可順利執(zhí)行,。 新增Registers及支援DP浮點 ARMv8A架構新增了31個64bit通用寄存器(General Purpose Registers),,改進排程選項以針對復雜軟件。同時,,還新增32個128bit Registers,,用作執(zhí)行SIMD。ARMv8A除了可執(zhí)行單精度(Single Precision)FP數據外,,新增支持雙精度(Double Precision)FP數據,,而且新增了IEEE754-2008 FP指令,如MaxNum/MinNum等等,。此外ARMv8A還把FPU及SIMD變成常設功能,,軟件不用檢測是否有相關功能。提供Cryptography加密指令,,而且是以128bit SIMD Registers執(zhí)行,,可在每周期同時執(zhí)行2個AES encode/decode指令,或4個SHA-1/SHA-256 Hash,。 最后,,雖然ARMv8A以64bit為主,但對于32bit的AArch32狀態(tài)也有所加強,。如新增的Cryptography及IEEE754-2008 FP指令,,Load acquire/store release`等等皆有幫提供32bit下的性能。 新增的31個64bit General Purpose Registers及32個128bit SIMD Registers,。 提供Cryptography加密指令,,且是在128bit SIMD Registers內進行。 ARMv8A強化了內存管理,,Virtual Address及Physical Address從40bit增至48bit,,支持更大容量內存。 率先登場的兩款64bit ARM處理器 在完成了64bit指令集的定義后,,ARM也隨即在2012年推出了兩款64bit ARM—Cortex-A57及A53產品,。該兩款產品自去年發(fā)布以外,不但獲得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)等等,兩者的分別在于設計理念的不同,,表現為數據處理性能會的差別,。 Cortex-A57及A53可用clusters的方法支持4機共16個核心。 以效能為主的Cortex-A57 Cortex-A57是一顆重效能的CPU,,其設計主要沿自Cortex-A15,,如3路譯碼器及15+ stage亂序執(zhí)行管線(Out-of-Order Pipelines),不過借著ARM所作的優(yōu)化,,如數據預取及增加Registers等等,,在處理32bit軟件也比Cortex-A15快20-30%左右。 在數據處理方面,,Cortex-A57提供遠高于Cortex-A53的性能,。首先是在管線的設計上,Cortex-A57管線stage較多(15+ vs 8),,而且是亂序執(zhí)行管線(Out-of-Order Pipelines),比Cortex-A53的簡單按序執(zhí)行管線(Simpe In-Order Pipelines)尤其適合處理大量數據的環(huán)境,。另外,,它擁有更多的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內存,。 Cortex-A57架構圖,。 強調比A9細的Cortex-A53 Cortex-A53是在提供足夠的性能下,盡量縮小芯片面積及功耗的產品,,所以它并沒有采用Cortex-A57較耗電的亂序執(zhí)行管線設計,,改用簡單按序執(zhí)行管線設計,。Cortex-A53提供目前主流Cortex-A9等級的效能,但芯片面積更小,,可在同制程下比Cortex-A9細40%,,如果使用20nm制程的話,面積僅為32nm Cortex-A9的1/4,,有助降低成本同時也可降低功耗,。 Cortex-A53架構圖。 Cortex-A53設計強調較Cortex-A9小的核心面積,。 第二代big.LITTLE Cortex-A57 & A53也會沿用Cortex-A15 & A7的big.LITTLE技術,,因應需要而決定使用高性能的big核心或使用高節(jié)能的LITTLE。不過在配置上,,Cortex-A57 & A53較有彈性,,除了可使用4(big) + 4(LITTLE)外,也可使用2(big) + 4(LITTLE)的配置,。筆者認為,,考慮到Cortex-A57與Cortex-A53性能差距明顯,即使是4個Cortex-A53也遠不及2個Cortex-A57的性能,,所以增加LITTLE核心數目顯得十分重要,。 第二代big.LITTLE新增了2(big) + 4(LITTLE)的配置。 根據ARM公布的路線圖,,2014-2015年還有一款新的32bit ARM處理器—Cortex-A12推出,。 結論︰ARM選擇降低風險 進入64bit年代,ARM很大程度上在現有的架構下加上64bit ARMv8指令架構,。所以Cortex-A57 & A53,,很大程度上是現在Cortex-A15 & A7的延續(xù)??梢夾RM首要的工作是確保64bit架構的成功,,其余部分盡量采用現有的設計以降低風險。 與此同時,,ARM也留了后路,,2014-2015年還有一款新的32bit ARM處理器Cortex-A12??梢娒鎸Ω偁幖ち业腎T市場,,誰也沒有必勝的把握,不得不小心應對,。
|
|