為何Apple自產自銷的ARM處理器這麼厲害(下)

Apple從2013年九月iPhone 5S的心臟A7「Cyclone」開始邁進64位元的世界,也以此為起點,Apple Ax應用處理器開始展現驚世駭俗的效能優勢,從2015年六月趕盡殺絕32位元應用程式,直到今年的iOS 11中止支援32位元處理器(意思就是只回朔支援到iPhone 5S),更是深具重大意義的里程碑。

64位元是為了破除高效能架構障礙

但64位元運算真的有這麼神奇嗎?當然不是,真正有舉足輕重影響的,是ARM指令集擴充到64位元時,「順便」帶來的革新,特別是移除了打造高效能微架構的重大障礙。

要提高處理器效能,不外乎增加每個時脈週期可處理的指令數:

  • 提高時脈,對於行動裝置來說,這幾乎是難以考慮的選項。
  • 增加同時可以平行處理的指令數量,像硬體指令排程的超純量(Superscalar)和編譯器決定如何「一個蘿蔔一個坑」的超長指令集(VLIW)。
  • 接著,提高管線效率,特別是當發生同時執行的指令,要存取相同暫存器而強碰時,就需要以「暫存器更名機制」為中心的「非循序指令執行」來解決。

前面有提到,電腦有別於計算器的最大差別,在於「條件判斷的能力」。

你可將電腦程式的正常執行流程,想像成一個「棋盤」,以一個角落當做起點,對角線的角落作為終點,在棋盤上反覆移動,不限制前進或後退。如發生條件判斷的分支(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體系指令,只是因種種因素不那麼實用,而逐漸邊緣化了。

引述執行Predication的缺點

但天底下沒有白吃的午餐,先不提「事後」才支援引述執行的困難度,引述執行不但會增加處理器的工作量,更會提高指令管線前端的複雜度,不僅不利於提昇時脈,更會影響非循序指令執行引擎的設計,因為暫存器重新更名機制要「替身」的資料就更多了。很諷刺的,原本寄望可以提高指令平行化的引述執行,竟然反過來變成了打造高效能微架構的麻煩製造者。

64位元的ARMv8-A取消4位元引述執行(Predication)碼,將省下的指令編碼位元數,挪為倍增資料暫存器之用,不但降低了發生暫存器相依的機率,一併解除實作更高效率非循序指令集執行的緊箍咒,更是「在指令集擴充之路上,設法搬移未來微架構路障」的經典案例,這遠比整數邏輯運算暫存器和記憶體平面定址空間擴充到64位元還重要上百倍。

蘋果看到的64位元大未來

基於未來性,Apple也很早就把重心放在64位元效能,根據某些實際的指令排程輸出率測試,Apple兼具32/64位元相容性的Ax應用處理器,64位元的指令輸出量,就幾乎是32位元的足足兩倍,例如每個時脈可輸出6個64位元指令,32位元就會腰斬。當然,Apple自家晶片亦具備極度優異的記憶體效能,A10X改絃易徹走向大型化L2快取,也隱約透露出些有趣的弦外之音,這就有賴前P.A.Semi團隊的功力了。

問題又來了,那為何A11會強到破表?

有沒有想起來,iOS 11已純粹對應64位元環境?那A11為何還要硬扛著相容32位元ARM指令集的包袱呢?伺服器導向的Qualcomm Centriq 2400就是「純64位元」ARM處理器。少了後顧之憂,自然就可以把所有電晶體預算砸到刀口上,效能自然好,這就是Apple同時掌握全部軟硬體的天然優勢。

最後,不提A11,光A10每個時脈最多可同時輸出4個整數、2個浮點和2個記憶體載入,就已經很接近IBM Power7的水準,幾乎是其他ARM對手的兩倍,真是嚇死人了。A11有多可怕?我們以後再研究,謝謝收看。

連載告一段落,看到這裡應該對蘋果自家處理器有些想法,與我們分享看看你覺得這系列如何吧!

為何Apple自產自銷的ARM處理器這麼厲害(上)

為何Apple自產自銷的ARM處理器這麼厲害(中)

為何Apple自產自銷的ARM處理器這麼厲害(下)

2 則回應

  • 覺得厲害!
    2018-01-09 23:51
  • 感謝分享,這下知道 Apple 厲害在哪了
    2018-01-09 20:34
區塊鍊技術也能用在交友軟體 歐洲一夜情APP《LegalFling》還要發行自己的數位貨幣 區塊鍊技術也能用在交友軟體 歐洲一夜情APP《LegalFling》還要發行自己的數位貨幣 17 個小時前
台北神旺酒店與阿里巴巴合作 用智慧喇叭天貓精靈X1 中文語音操作客房設備 台北神旺酒店與阿里巴巴合作 用智慧喇叭天貓精靈X1 中文語音操作客房設備 17 個小時前
拿了就走 免排隊結帳 亞馬遜無人超市「Amazon Go」正式開張 拿了就走 免排隊結帳 亞馬遜無人超市「Amazon Go」正式開張 21 個小時前
Google對決蘋果Podcast Google Play有聲書將獨立分類 Google對決蘋果Podcast Google Play有聲書將獨立分類 21 個小時前
比特幣是泡沫還是永續 諾貝爾獎得主席勒:繼續存在一百年或徹底崩盤都有可能 比特幣是泡沫還是永續 諾貝爾獎得主席勒:繼續存在一百年或徹底崩盤都有可能 1 天前
不只AlphaGo超強 中國棋王柯潔讓兩子還是敗給騰訊 AI「絕藝」 不只AlphaGo超強 中國棋王柯潔讓兩子還是敗給騰訊 AI「絕藝」 1 天前
好媒體、爛媒體你決定 臉書將優先呈現社群認可的媒體新聞資訊 好媒體、爛媒體你決定 臉書將優先呈現社群認可的媒體新聞資訊 1 天前

熱門文章

最新消息

本日精選