AMD推土機最大的祕密:Decoupled Front-end Architecture

ADVERTISEMENT

指令管線早已非「一條腸子通到底」

自從1990年IBM的Power1「America」成為計算機工業史上首款超純量(Superscalar)架構處理器,在一個時脈週期內執行兩個以上的指令,結合起源於1967年IBM S/360 Model 91的非循序指令執行(OOOE,Out-of-Order Execution,資訊科班學生不能不知道的Tomasulo演算法),傳統計算機概論在眾人心中描繪的「一條腸子通到底,跑的慢的指令會塞住後方」指令管線,早已不存在於近二十年來的高速處理器微架構。當十年前泛用處理器業界一頭撞上功耗之牆後,追求指令平行度(ILP,Instruction Level Parallelism)的重要性更凌駕於時脈提昇,成為支撐效能成長曲線的主要推手。

現在ARM SoC效能打不過x86處理器,難道只因「時脈比較低」?就算時脈平起平坐,論單核心效能,Intel的Valleyview和AMD的Jaguar照樣不費吹灰之力,活活電死檯面上公開規格的ARM SoC。論多核心效率與多處理器延展性,大概也不會有太多人相信ARM陣營能夠在記憶體子系統層面,包含快取資料一致性協定、系統匯流排與快取記憶體階層,足以匹敵x86雙雄,更罔論伺服器額外需要的可靠性、可用性與開發流程所需的產品驗證能力。ARM會願意為了其伺服器大計,遊說十年直到AMD帶槍投靠,不是沒有道理的。

AMD推土機最大的祕密:Decoupled Front-end Architecture

Intel早在2006年Merom投入戰場的Macro Fusion後,相隔五年,AMD「終於」在推土機推出類似的功能。

講的白話一點:按照歷史教訓,當RISC處理器為了追求高效能而做到某個「複雜度」,因為指令集帶來的「稅賦」將隨著微架構的膨大而越來越微不足道,耗電量和「效能/功耗比」對x86大概也佔不了多少便宜,甚至還很可能被x86陣營長期享有的製程優勢逆轉,ARM沒有理由不走上RISC前輩曾踏過的荊棘之路。藍色巨人IBM的Power,是集今日對ARM(或全體RISC)Server的幻想之大成,最完美的典範與最殘酷的例證。

1993年的Pentium是x86首款超純量處理器,1995年底讓x86逐步支配工作站及低階伺服器市場的Pentium Pro,則是首款支援非循序指令執行的x86產品,而時下被媒體炒得火紅的ARM,則整整落後了超過十年,才有同級微架構(Cortex-A8/A9/A15)。1990年代隨Windows作業系統普及而爆炸式成長的個人電腦市場動量之巨大,由此可見一斑。

而「CISC指令通通跑不快,所以無法管線化高速執行」的偏見也逐漸消失在世界的盡頭,藉由使用簡單低階層硬體線路控制和簡單的資料路徑,x86處理器也能享有很好的時脈速率,且整合硬體線路控制(控制簡單指令)與微碼控制(用來控制更複雜的指令)的轉換過程,更讓1990年代以降的x86處理器,普遍能以高效能執行80x86指令集中「簡單且高使用頻率」的指令。

你覺得這段落很眼熟,甚至直接找出這是「參考」哪本書哪幾章哪幾頁的內容,代表看倌的計算機組織學的很好,上課有認真聽。

事實上,再複雜「再毫無道理可循」的指令集架構,也是會有一小撮「最被軟體經常使用」的簡單指令「最值得被加速處理」,高階程式語言編譯器的發展和RISC指令集的濫觴,兩者息息相關,躲在RISC背後的基本理念「Make the common case fast」同樣也可應用在CISC處理器。Intel在首款管線化處理器家族80486就已採用近似的概念,隨後的NexGen Nx586則是x86第一個「在處理器內部將x86處理器轉譯為RISC型態微指令」。

延伸閱讀:深度了解Intel史上最成功的x86處理器微架構:P6

77

2010十二月

從Sandy Bridge回顧Intel P6(上)

P160-P165

78

2011一月

從Sandy Bridge回顧Intel P6(中)

P160-P166

84

2011七月

從Sandy Bridge回顧Intel P6(下)

P159-P165

85

2011八月

從Sandy Bridge回顧Intel P6(四)

P148-P154

86

2011九月

從Sandy Bridge回顧Intel P6(完)

P158-P165 

管線前端變成最大效能瓶頸

市場競爭催生出無數越發精密複雜、火力更加強大的處理器微架構,巨大的多層化快取記憶體、更深的非循序指令執行緩衝區與複數執行單元,一切都只為了追求指令平行度(ILP)。近期企圖打造「x86桌面處理器等級效能」ARM核心進展最快的Apple與NVIDIA,不約而同走上「更寬」而非盲目追求高時脈的方向,就是最好的例證。程式碼能否提供塞滿處理器的平行度,那又是另一個值得深度探討的話題了。

以現今伺服器處理器王者IBM Power8為例,「單一」處理器核心內,共有「八條」同時多執行緒,共用「發送率(Issue)每時脈十個」的指令解碼器,每個時脈最多派發(Dispatch)「八個指令」給「十六個」執行單元,令人瞠目結舌,不愧是單顆報價一萬美元起跳、藍色巨人燃燒十億美元研發出來的怪物,重點是4GHz時脈,還不算低。

但你哪來的把握餵飽這票豺狼虎豹…呃,嗷嗷待哺的執行單元嗎?x86指令集的指令編碼格式特別混亂,加重同時擷取數個指令、解碼並塞滿非循序執行單元的困難度。這對RISC指令集可能不成問題,但x86就極度棘手,而這也不是多執行緒架構就能迎刃而解的基礎瓶頸。

AMD推土機最大的祕密:Decoupled Front-end Architecture

各位睽違已久的近代OOOE圖解又來了:現在指令管線前端變成最大的效能瓶頸。 

延伸閱讀:關於IBM Power處理器的近代發展(雖然內容過期需更新)

49

2008八月

他山之石:回顧藍色巨人IBM的POWER處理器近代發展史(上)

P184-P190

50

2008九月

他山之石:回顧藍色巨人IBM的POWER處理器近代發展史(中)

P180-P186

51

2008十月

他山之石:回顧藍色巨人IBM的POWER處理器近代發展史(下)

P186-P190

下一頁:分支處理勞民傷財

魯蛇實驗室
作者

戶田惠梨香 新垣結衣 長澤雅美 吉高由里子 志田未來 北川景子 香里奈 竹內結子 北乃紀伊 菅野美穗 黑川智花 宮崎葵 夏帆 貫地谷詩穗梨 石原里美 有村架純 井上真央 真野恵里菜 能年玲奈 深田恭子

使用 Facebook 留言
PCABC
1.  PCABC (發表於 2014年4月21日 15:44)
有沒有建議的入門參考用書

這篇有點難懂 希望增加更多詳盡的解釋與圖解

發表回應
謹慎發言,尊重彼此。按此展開留言規則