ARM架構
ARM架構過去稱作進階精簡指令集機器(Advanced RISC Machine,更早稱作:Acorn RISC Machine),是一個32位精簡指令集(RISC)處理器架構,其廣泛地使用在許多嵌入式系統設計。由于節能的特點,ARM處理器非常適用于移動通訊領域,符合其主要設計目標為低耗電的特性。
在今日,ARM家族占了所有32位嵌入式處理器75%的比例,使它成為占全世界最多數的32位架構之一。ARM處理器可以在很多消費性電子產品上看到,從可攜式裝置(PDA、移動電話、多媒體播放器、掌上型電子游戲,和計算機)到電腦外設(硬盤、桌上型路由器)甚至在導彈的彈載計算機等軍用設施中都有他的存在。在此還有一些基于ARM設計的派生產品,重要產品還包括Marvell的XScale架構和德州儀器的OMAP系列。
ARM 指令集走向64 位元帶來的重大改革
蘋果在2008年4月23日,冒著極大風險硬著頭皮發表初代iPhone的隔年,耗費2億7,800 萬美元,購并了專注開發高效能Power 處理器的PA Semi,組成其處理器研發團隊的骨干,然后在2012年9月發表的iPhone 5,其心臟「A6」處理器,終于不再使用來自ARM授權的核心,采用自家的「Swift」微架構(Micro Architecture)。
再以世界上首款搶灘登陸智慧型手機與平板的64位元ARM處理器「A7」(Cyclone微架構)為起點,蘋果自家SoC開始逐漸展現壓倒ARM Cortex家族(與躺著中槍的Qualcomm自有核心)效能優勢,且隨著時間演進,差距越拉越開。
讓ARM 指令集邁向64 位元的ARMv8-A,并非只有「將整數邏輯暫存器寬度延長到64 位元」和「提供64 位元記憶體定址空間」這么簡單,拋棄昔日專注于嵌入式應用的遺產,更加的簡潔優雅,更利于打造高效能微架構,引領ARM 榮登高效能的天堂,是這次指令集改版最神圣不可侵犯的絕對使命。
ARMv8-A 修訂項目極多,但就筆者的角度,除了取消「加速重建儲存CPU 狀態的Context Switch 相關機制」(一堆就今日觀點實在很小家子氣的技術),和簡化例外處理與執行特權階層外,最重大的改革,只有兩項:
倍增通用暫存器(GPR)數量,這件事在當年AMD 讓x86 邁向64 位元時也發生過,意義重大。
取消涵蓋整套指令集的「條件執行」(Conditional Execution),這和前者互為表里,因為總算擠出了珍貴的指令編碼空間去增加暫存器數量。
其中又稱為「引述式執行」(Predicated Execution,或Guarded Exectuion)的后者,目的在于減少程式中的分支,指令集提供簡單扼要的條件執行指令,一次做完所有事情。
ARMv8架構及技術特點
2011年11月,ARM公司發布了新一代處理器架構ARMv8的部分技術細節。這是ARM公司的首款支持64位指令集的處理器架構。由于ARM處理器的授權內核被廣泛用于手機等諸多電子產品,故ARMv8架構作為下一代處理器的核心技術而受到普遍關注。ARM將在2012年間推出基于ARMv8架構的處理器內核并開始授權,而面向消費者和企業的樣機于2013年由蘋果的A7處理器上首次運用。
ARMv8技術特點
ARMv8是在32位ARM架構上進行開發的,將被首先用于對擴展虛擬地址和64位數據處理技術有更高要求的產品領域,如企業應用、高檔消費電子產品。
ARMv8架構包含兩個執行狀態:AArch64和AArch32。AArch64執行狀態針對64位處理技術,引入了一個全新指令集A64;而AArch32執行狀態將支持現有的ARM指令集。目前的ARMv7架構的主要特性都將在ARMv8架構中得以保留或進一步拓展,如:TrustZone技術、虛擬化技術及NEON advanced SIMD技術,等。
配合ARMv8架構的推出,ARM正在努力確保一個強大的設計生態系統來支持64位指令集。ARM的主要合作伙伴已經能夠獲得支持ARMv8架構的ARM編譯器和快速模型(Fast Model)。在新架構的支持下,對一系列開源操作系統、應用程序和第三方工具的初始開發已經在開展中。通過合作,ARM合作伙伴們共同加速64位生態系統的開發,在許多情況下,這可視為是對現有支持基于ARMv7架構產品的廣泛生態系統的自然延伸。
具備64位計算能力的ARMv8架構,將使其合作伙伴有望進入高端服務器市場。然而,很多合作伙伴卻缺乏在該市場的技術積累。
ARM架構的蘋果處理器強在哪里
蘋果從2013年九月發布iPhone 5S配備了自家的A7處理器開始,正式邁進64位處理器的時代,也以此為起點,蘋果的A系列處理器開始展現驚世駭俗的性能優勢,從2015年六月趕盡殺絕32位應用程序,直到去年蘋果的iOS 11系統正式宣布不再支持32位處理器(意思就是iPhone 5S以前的機型不再支持升級系統到iOS 11),更是深具重大意義的里程碑。
高性能之路:讓處理器在同一時間處理更多的指令
但64位運算真的有這么神奇嗎?當然不是,真正有舉足輕重影響的,是ARM升級到64位指令集時,「順便」帶來的革新,特別是鏟平了打造高性能構架的重大障礙。
要提高處理器性能,不外乎增加每個時鐘周期可處理的指令數:
· 提高時鐘周期,對于便攜移動設備來說,這幾乎是不切實際的選項,提高時鐘周期預示著在同樣的技術條件下需要更多的能耗。
· 增加同時可以平行處理的指令數量,不再像以前那樣每次只能一個蘿卜種一個坑,現在你可以同時種多個蘿卜到多個坑中。
· 提高管線效率,特別是當發生同時執行的指令,要存取相同儲存器而撞車時,需要以「儲存器更名機制」為中心的「非循序指令執行」來解決。
前面有提到,電腦有別于計算器的最大差別,在于「條件判斷的能力」。
你可將計算機程序的正常執行流程,想像成一個「棋盤」,以一個角落當做起點,對角線的角落作為終點,在棋盤上反復移動,不限制前進或后退。如發生條件判斷的分支(Branch),或無條件判斷的跳躍(Jump),就會變更指令流,并且中斷指令管線的運作,特別是必須先等待條件判斷的執行結果,才能決定該分支是否發生的分支,對性能的影響尤其明顯。
所以某些指令集就具備了所謂「引述執行(Predicaton)」的能力,包含32位的ARM指令集。一個在一般指令集的簡單條件判斷(相信各位一定看得懂):
beq ra,label // if(ra)= 0,branch to‘label’ or rb,rb,rc // else move(rb)into rc
改用具備引述執行的條件搬移指令,一行就解決了,避開了分支指令,也無須啟動分支預測機制。講的直白一點,就是把所有相關工作打包起來,一次搞定。
cmovne ra,rb,rc
這對追求高度平行化的指令集,有著莫大的吸引力,所以也不外乎多數超長指令集(VLIW)電腦,都具備這樣的能力,包含Intel的IA-64(Itanium),連x86從Pentium Pro開始也有cmov體系指令,只是因種種因素不那么實用,而逐漸邊緣化了。
蘋果看到的64位大未來
基于未來性,蘋果也很早就把重心放在64位性能,根據某些實際的指令排程輸出率測試,蘋果兼具32/64位兼容性的Ax應用處理器,64位的指令輸出量,就幾乎是32位的足足兩倍,例如每個時鐘周期可輸出6個64位指令,32位就會腰斬。當然,蘋果自家芯片亦具備極度優異的內存性能,A10X走向大型化L2緩存,也隱約透露出些有趣的弦外之音,這就有賴前P.A. Semi團隊的功力了。
-
處理器
+關注
關注
68文章
19852瀏覽量
234227 -
ARM架構
+關注
關注
15文章
182瀏覽量
37106
發布評論請先 登錄
有朋友對蘋果的處理器有研究的么
蘋果公司為什么要用ARM處理器
深解蘋果iphone5 A6處理器:相比A5強在哪里
ARM公版架構 真的是麒麟處理器的槽點嗎?

評論