[閒聊] AMD Zen 成功背後不為人知的故事

看板 PC_Shopping
作者 KotoriCute (Lovelive!)
時間 2020-07-02 01:29:53
留言 167則留言 (58推 6噓 103→)

癡漢水球寫了一篇應該是目前中文圈科技媒體 對於Zen的前世今生到裡面的各種技術細節的最詳細科普長文 也是他最近少見比較偏硬的文章 對於想了解Zen架構的人來說很值得一讀 建議點進去看文圖並茂網頁版 -- AMD Zen 成功背後不為人知的故事 https://technews.tw/2020/07/01/story-of-amd-zen/ 自從 2017 年 AMD 準時推出「技術規格看起來稍微正常點」的 Zen 微架構 CPU 後,總 算脫身逃離了 2011 年以來推土機(Bulldozer)家族「4 年走音工地秀」的泥沼,回到 跟英特爾正面對決互毆的擂台,而 2019 年 7 奈米製程的 Zen 2,在 2015 年後就擠牙 膏擠到青黃不接的當下,更讓 AMD「稍微」重現了十多年前 K8 時代的輝煌。這些各位讀 者都很熟悉的故事,就無需浪費篇幅錦上添花──即使背後充滿看不見的波濤。 俗語說得好,失敗為成功之母,任何成功都建立在一路累積的基礎上,AMD 亦不能免俗, 讓 Zen 成功的一切條件,無不是奠基於過往的遺產與教訓。我們就由遠到近,一步步抽 絲剝繭,重新踏上這條 AMD 走了 25 年的漫漫長路。 Zen 才是真正的 K10 AMD CPU 代號的 K 源自「(Intel Pentium)Killer」,眾人皆知的 AMD 高效能 x86 CPU 演進如下(不包含小核心 Bobcat 體系): :由超純量(Superscalar)架構大師 Mike Johnson 親自操刀的「Pentium Killer」,但英特爾並未開誠布公的公開 Pentium 新增指令細節,為了確保與 100% 跟 Pentium 相容,逆向工程搞了很久,上市日期一再延宕,讓痴痴等待的 Compaq 等不及 。 :直接購併 NexGen,修改現成的 Nx686,取消類似 Pentium Pro 的 L2 快取 專用匯流排,到內建 L2 快取的 K6-2+和 K6-III 才算大功告成,但已時不我與。 :出身 DEC Alpha 團隊的 Dirk Meyer 變成的「x86 世界的 Alpha 21264」 ,AMD 首次能與英特爾全面性較量效能。 :Fred Weber 主導的 K7 強化版+x86-64+伺服器等級的 RAS( Reliability, Availability and Serviceability)+HyperTransport+整合型記憶體控 制器,讓 AMD 悲願成就,一舉攻入高獲利的企業伺服器市場。 :英文發音近似「狗」(Caine),太過負面,因此沒這個代號。 :4~6 核 K8 強化版+整合式 L3 快取記憶體,AMD 開始「包水餃」兩顆打 一顆,也逐漸無力抵抗英特爾小步快跑的鐘擺(Tick Tock)攻勢。 :由 IBM Power4 的總工程師 Chuck Moore 操刀,接連四代被英特爾鐘擺痛 扁的「推土機」(Bulldozer)家族,叢集式多執行緒(CMT)和模組化浮點運算器暗藏了 AMD 對 Fusion 大戰略的熊熊野心與對未來 GPGPU 局勢的離譜誤判。 :從頭到尾搞笑的「全新高效能 64 位元 ARM 處理器」,還沒開始就 結束了,只活在簡報裡,無愧當時「簡報王」名號。 :深度管線、追求高時脈、同時多執行緒(SMT),根本是 Andy Glew 原先 的 K10 原案投胎轉世。 總之,嚴格說來,Zen 才是「真正的 K10」。這句話你可以仔細再看一次,我會等你。 1990 年代初期創造英特爾革命性 P6 微架構 5 位總工程師之一的 Andy Glew,對英特爾 內部提議代號「Yamhill」的 64 位元 x86 指令集被拒絕,2002 年跳槽到 AMD 參與 x86-64 指令集的制定工作,並短暫擔任 K10 總工程師。為何說「短暫」?他老兄原本 提案的 K10 是類似英特爾 NetBurst 的設計:深度管線、追求高時脈、未犧牲執行單元 寬度、同時多執行緒(SMT),然後就又被打槍了,只是這次動手的換成 AMD 高層。 他老兄一不爽,又在 2005 年跳回前東家英特爾,但恐怕運氣一直不太好,加入因太過「 史詩級災難」(單核心晶粒面積 213mm2 幾乎是 Prescott 兩倍,TDP 又超過 150W 上 看 166W)而慘遭腰斬的 Tejas 開發案。2009 年再度離開英特爾,歷經 MIPS 和 nVidia 。瞧瞧 LinkedIn 的個人介紹,現在正待在搞 RISC-V 的 SiFive。 為何真正的 K10 會沉寂這麼久才浮上檯面?這跟 AMD 研發能量明顯遠不及英特爾、難以 承擔精密複雜的微架構有很大關係,一顆當兩顆用的 SMT 並不是好開發驗證的東西。據 AMD 在 1998 年申請的幾份專利文件,原始 K8 有兩版,共同點只有一個:兩個簡單的 「外寬內窄」小核心,明眼人腦中應該馬上浮現推土機的雛型了。 但 AMD 大概是靠 K7 和 K8 日子過太爽了,遑論 K8 讓 AMD 大舉入侵高利潤、市場動量 又很持久(意思是產品暫時輸人,也不會很快被趕出來)的伺服器市場,「先講求不傷身 體,再講求效果」的維穩心態作祟,或在 2006 年 7 月耗費 54 億美元購併 ATI 這件事 ,燒了太多錢,不得不節約研發經費,遲遲不見全新後繼接班人。 此外,AMD 融合 CPU 和 GPU 的「Fusion 大戰略」(The Future Is Fusion)也影響了 CPU 發展策略。AMD 過度樂觀預期 GPU 的泛用化進程,認定假以時日 GPU 將可取代 CPU 的浮點或部分 SIMD 整數運算,讓推土機變成依附 Fusion 的附庸,擺明當「天時 、地利、人和」三者兼備時,直接用 GPU 換掉兩個簡單整數運算核心共用的浮點運算器 。 不過推土機在商業競爭失敗,並不代表對之後 Zen 的成功毫無貢獻,除了讓 AMD 得到足 夠「不能亂搞管線前端」的教訓,讓分支預測與指令管線拖鉤的解耦式分支預測器( Decoupled Branch Predicator)是支撐 Zen 效能競爭力的一大功臣,甚至是 Zen 2 可 實做「機械學習分支預測器」的地基。各位別急,後面會提到。 反過來利用晶圓代工商業模式來提高電晶體密度與生產良率 AMD 創辦人 Jerry Sanders 有一句名言「有晶圓廠才是真男人」(Real men have fabs ),在今日真是莫大的諷刺。 雖然像英特爾和昔日 AMD 的高度垂直整合 IDM(Integrated Design and Manufacture) 商業模式,可確保設計和製程彼此最佳化,但在追求 Time To Market 的世界,專業的無 晶圓廠 IC 設計公司(Fabless IC Design House)、IP 授權提供者、電子輔助設計工具 (EDA Tool)與晶圓代工業者(Foundry)的高度分工,卻更能藉由成熟的「研發供應鏈 」互通有無,沿用早被諸多客戶千錘百鍊的晶圓廠製程參數、現有 IP 功能模組和函式庫 ,迅速完成產品的開發與驗證,並縮短時程降低成本。 SPARC 兩位要角之一的 Fujitsu,會在新世代 HPC 產品 A64FX 轉向 ARM 並交由台積電 7 奈米製程代工,其因在此,光曾被蘋果和眾多客戶「嚴刑拷打」的寶貴經驗,對盡快 搞定產品絕對是重中之重的無價之寶。 這件事也發生在放棄自有晶圓廠的 AMD。K11 時代,AMD 反過來利用晶圓代工生產 GPU 的高密度函式庫和自動化設計工具,砍掉多達 30% 的 CPU 晶片面積與耗電量,特別是過 往「動用大量人力手工布線才能電路最佳化」的功能單元,如複雜的浮點運算器。「GPU 的電路設計最佳化程度優於 CPU」這檔事,在 21 世紀初期的 AMD 連想都不敢想。 這些經驗和努力,對 Zen 的成功絕對舉足輕重。就商業角度來看,這也讓 AMD 未來保有 開發新型商業模式的彈性,中國中科海光(Hygon)的 Dhyana 就是採用授權的 Zen 核心 ,當然美國政府願意「樂觀其成」那又是另一回事了。 「RISC86」與 4 道 x86 指令解碼的先行者 將指令格式與定址模式複雜到讓人頭痛的 x86 指令,在指令解碼階段「轉譯」成一至數 個固定長度、格式簡潔的「類 RISC」微指令(Microinstruciton),以簡化處理器執行 單元與資料路徑的設計,利於提升時脈,並「將電晶體預算砸在最值得被加速的簡單指令 ,不常用到的複雜指令,就用微碼(Microcode)ROM 產生 ROP 微程式慢慢跑」,已是 20 年來 x86 CPU 的共同特色,超純量架構大師 Mike Johnson 領銜的 K5 則是先驅( 如果不限超純量,NexGen Nx586 則稍早),將非固定長度的 x86 指令解碼成平均 59 Bits 長的 ROP(RISC86 Operation,發音是「ar-op」)。 AMD K5 還有個值得紀念之處:x86 史上首款單一核心最多可同時解碼 4 個 x86 指令的 CPU,下一款是相隔近十年的英特爾 Merom 了,不提尷尬的 K11,AMD Zen 更晚了自家 「前輩」超過 20 年。 強化非循序指令執行效率的兩段式微指令轉譯與「類 VLIW」的微指令派發 x86 CPU 的指令解碼器將 x86 指令轉成微指令,看起來好像很美好,但隨著 CPU 可同時 非循序執行的指令數量越來越多,「微指令洪災」就變成大麻煩,需要複雜的功能單元與 相對應的電路成本,監控管理一海票微指令的生老病死與相依性,這也不利減少 CPU 功 耗。 在這就非得岔題談一談「首款雙核心伺服器 CPU」的 IBM Power4 了,為縮減指令控制邏 輯的複雜度,Power4 一次將 5 個解碼後的指令「打包」成一個「一個蘿蔔一個坑、每個 指令垂直對應一個執行單元」的超長指令(VLIW)包(一時腦筋轉不過來,可想一下 AMD GPU 以前的 VLIW5),裡面 5 個指令全部執行完畢才能退返(Retire),控制邏輯 單元只需管控相當於 100 個指令的 20 個指令包,這讓 Power4 這部分電路規模只有前 代 Power3 的一半,且更便於拉抬 CPU 時脈。 AMD 則是從 K7 開始兩段式微指令轉譯,指令解碼器先將 x86 指令解碼一至兩個 MOP( Macro-Operation),到了內部要在指令保留站(Reservation Station)「派發」( Dispatch)到執行單元前,再拆成更小的 uOP(發音「ur-op」),接著才「真槍實彈上 陣」,避免一開始就把微指令拆光光,淹沒指令管理單元,也變相將指令解碼器的複雜度 分散到「大後方」。 關於無法直接用「Fast Path」指令解碼器處理成 MOP 的複雜指令,由「Vector Path」 的微碼 ROM 產生一系列 MOP 微程式。前面就提過,所謂「RISC86」真正的精神就如同 RISC:把經常用到的情況盡可能加速(Make The Common Case Fast.),將最佳化資源 集中在最常碰到的刀口。 同期英特爾的手段就讓人莞爾,起源於 Pentium M 的「Macro-Fusion」,英特爾直接藉 由增加指令保留站的運算元數量,削減 CPU 內部微指令的總量,例如用一個三運算元(a =b+c)微指令代替兩個(a=a+b),說穿了也稱不上什麼「融合」,或還不如說「本 來就應該這樣做」更貼切。 相對英特爾從 Merom 開始,指令保留站某些 Port 擠滿了一堆不同性質執行單元的「爆 漿撒尿牛丸」樣貌,AMD 那「整數浮點一邊一國的簡潔風」在「簡單就是美」的推土機展 露無疑,非常「VLIW」,就算沒有像 IBM Power4 那樣「指令打包送快遞」,但看在總工 程師都是同一位如假包換的 Chuck Moore 份上,企圖簡化複雜度以追求更高運作時脈與 更高投資效益的意圖是一致的。 儘管推土機家族的下場不是太好看,但類似理念也同樣被 Zen 繼承,反正各位只需了解 一個殘酷的現實:畢竟 AMD 的研發能量遠不如英特爾,不見得有雄厚本錢採取過於精密 複雜的架構風格,此類「窮人思維」在 AMD CPU 發展史上無所不在。 尋尋覓覓千百度才穠纖合度的分支預測 「電腦 」(Computer)和「計算器 」(Calculator)的不同點在於:電腦具備「條件判 斷」的能力,依據不同條件,執行不同指令流。各位可將電腦程式的運作流程,想像成一 個「棋盤」,以一個角落為起點,對角線的角落當終點,在棋盤上反覆移動,不限制前進 或後退。如發生條件判斷的分支(Branch,必須先等待條件判斷的執行結果,才能判定該 分支「發生」),或無條件判斷的跳躍(Jump),就會變更指令流,並中斷指令管線運作 ,尤其前者傷害指令管線化的 CPU 效能,才需要「以古鑑今」的分支預測(Branch Prediction)技術。 「過猶不及」的「分支預測」一向公認是 AMD 落後英特爾的技術弱點,到了 Zen 才改觀 。賈誼〈過秦論〉那句意謂秦始皇繼承六代功業的「奮六世之餘烈」,套用到 Zen 看似 突破性的分支預測技術,實在再適合不過了,在 Zen 之前,剛剛好也是 6 世代:K5、K6 、K7、K8、K10、K11,有夠巧。 因 K11 的分支預測技術和前代相比簡直徹頭徹尾大相逕庭,故不列於下表。 一般我們談到的是「動態」分支預測,透過小型化快取記憶體,記錄分支行為的歷史,並 隨時蒐集各類參考資訊,動態的修正預測的結果。近年來拜「CPU 安全漏洞」所賜,「預 測執行 」(Speculative Execution)、「非循序執行 」(Out-Of-Order Execution) 和「分支預測」等技術名詞,變得非常熱門也經常混淆。 各位只要記得,對近代高效能 CPU,「預測執行=分支預測+非循序執行」,CPU 根據分 支預測的結果,先斬後奏「賭博」性執行指令流,再藉由非循序執行引擎維護指令執行順 序的一致性,以及當預測錯誤時,回復該分支前的處理器狀態。 分支預測究竟有多重要?假如有一顆 CPU 沒有任何分支預測機制(或說有,但總是預測 錯誤),當執行分支指令時,直到目標指令被擷取,所需要的時脈週期數「分支傷害」( Branch Penalty)是 3 個時脈週期,分支占了程式碼五分之一,那會損失多少效能? 3 * ⅕ =0.6 1 / (1+0.6) = 0.625 我們就可簡單推算出,平均執行每個指令都會多出 0.6 個時脈週期,等於增加 60% 執行 時間,執行效能僅剩下 62.5%。 很不幸的,這個簡單的案例還真的有倒楣的苦主:AMD K5 的初版「SSA/5」(PR75 到 PR100),因不明原因,分支預測功能被關閉,還「附贈」奇怪的 CPU 閒置狀態,「完 全體」5K86(PR120 到 PR200)的同時脈效能就硬是多了整整 30%。讓人極度好奇,假若 Compaq 知道他們死撐著不用 Pentium,只為了等待這樣的產品,會做何感想。 K5 的分支預測超級陽春,準確率僅 75%。當連續執行分支指令時,等於每道指令平均多 0.75 個時脈週期,沿用上面「分支占五分之一」的算法是 0.15,效能僅剩 87%,怎麼 看分數都不及格。但這時各位也應心知肚明,後期 K5 多出來的 30% 效能大致上是怎麼 來的,分支預測的確發揮了關鍵性作用。 (75% * 0) + (25% * 3) = 0.75 0.75 * ⅕ = 0.15 1 / (1 + 0.15) = 0.87 購併 NexGen 而來的 K6 卻是 AMD 史上罕見的「過度投資」,和 K5 同為六階管線、但 最多只能解碼兩個 x86 指令的 K6,在分支預測暴力到整個過頭,足以傲視 AMD 歷代 CPU 架構,但這是天大的浪費,況且分支預測越複雜,發生錯誤的回復時間也就越長, K6 的錯誤代價就硬比 K5 多出一到兩個時脈週期(3 vs. 4 或 5)。 K6 的分支預測準確率號稱高達 95%,我們可推算出執行每個分支指令只會多出 0.2 到 0.25 個時脈週期,「分支占五分之一」就 0.04 到 0.05,效能維持在 95% 到 96%,遠 勝過 K5。 (95% * 0) + (5% * 4) = 0.2 (95% * 0) + (5% * 5) = 0.25 1 / (1 + 0.04) = 0.96 1 / (1 + 0.05) = 0.95 不知道是不是針對 K6「過度投資」的反動,或是覺得過於複雜的分支預測只會帶來反效 果,AMD 在 1998 年 Microprocessor Forum 揭露 K7 的神祕面紗時,最讓人意外的不是 和 DEC Alpha 21264 如出一轍的「體格」,而是「Long Pipeline, But Simple Branch Predictor」。 對外界種種質疑,AMD 堅持「更精確的分支預測器只會帶來更複雜的設計、更多的預測時 脈週期與回復效能損失」,還更大膽的將標準的 2 位元 Smith 演算法 4 種狀態,砍成 只剩下 3 種(將 Strongly not taken 和 Weakly not take 合為一種 not taken)。對 照 K7 壓倒性的龐大執行單元,在這種小地方偷工減料,真的是莫大諷刺,但更扯的還在 後頭。 演進自 K7 的 K8 與「壓榨 K8 剩餘價值」的 K10,指令管線更深,沒有擺爛裝死的藉口 ,乍看之下「知恥近乎勇」亡羊補牢,但卻很精明的利用「L1 / L2 互斥性快取( Exclusive Cache)」的特性,趁著資料從 L1 指令快取「被驅逐」(Evicted)寫入 L2 快取時,將分支選擇器「偷放」在 L2 快取記憶體包含指令的快取區塊之 ECC 欄位,「 節儉」至此,堪稱一絕。 受制於不佳的分支預測精準度與「連如此簡單的整數核心都餵不飽」的 L1 指令快取記憶 體,甚少人注意到指令管線深達 20 階的 K11,解耦式分支預測器(Decoupled Branch Predicator)早已默默為 Zen 2 的「機械學習分支預測器」TAGE(TAgged GEometric) 分支預測器預先埋好了路基。 相近於今日少人知悉的 Rise mP6,K11 不等發生指令快取誤失才去抓取目標指令,推土 機的分支預測機制與指令擷取「脫鉤」,主動標定分支預測目標的相對位址,如不存在於 指令快取內,就「主動出擊」預先擷取,可掩蓋發生快取誤失時的延遲,並替更耗時的機 械學習分支預測器「爭取訓練的時間」。 依照 AMD 的說法,Zen 2 的分支錯誤率比 Zen 減少了 30%,意味著 Zen 從 97% 的精確 度提升到 Zen 2 的 98%。但不論解耦式分支預測器還是機械學習分支預測器 TAGE,都是 英特爾研究多年並發表過學術論文的產物,很可能早就導入產品了,但沒刻意拿出來說嘴 。不過花了這麼長的時間,AMD 總算在分支預測趕上英特爾的水準,仍值得可喜可賀。 激增有效實質容量的互斥性快取架構 各位有沒有想過:Ryzen Threadripper 3990X 的「288MB」快取容量究竟是怎麼算出來的 ? 答案是「64 核心 × 512kB 第二階快取」加上「8 個 CCD × 2 個 CCX × 16MB 第三階 快取」 ,因兩邊的內容是「互斥」(Exclusive)的,而第二階快取完全包含( Inclusive)了第一階快取的內容,所以有效容量是 32MB+256MB=288MB,這也是 AMD CPU 從 K7 後期至今,一個持之以恆的共同特徵,而英特爾則從 Nehalem 開始,走上另 一條徹底相反的路線。 互斥性快取架構的發生背景是 K7 從 Thunderbird 開始,CPU 直接整合 256kB 或 64kB 第二階快取記憶體,但 K7 的第一階快取總容量多達 128kB,不讓兩者「油水分離」,將 會浪費大量的有效容量,如 Duron 的 L1 竟然還是 L2 兩倍的蠢事(128kB vs. 64kB) 。從 K7 到 K10 是 L1 / L2 互換,K11 到 Zen 則調整成 L2 / L3 輪轉。 K8 / K10 利用這點,趁 L1 指令快取的資料搬到 L2 時,將分支選擇器隨著預先解碼( Pre-decoded)和奇偶校驗(Parity)欄位,一併寫入確定存放指令的 L2 快取區塊之 ECC 欄位,但互斥性快取架構也是 AMD CPU 最末階快取延遲過長的元兇。 伺服器等級的記憶體自動偵測容錯機 伺服器要的是 RAS:可靠性(Reliability)、可用性(Availability)、可服務性( Serviceability),而最大的潛在威脅,莫過於構成地球低強度背景輻射的帶電粒子,所 引起位元翻轉的記憶體軟錯誤(Soft Error),動輒偶發的多位元錯誤更是一大挑戰。 K8 之所以能替 AMD 敲開伺服器天堂的大門,被偵錯容錯機制高度保護的快取記憶體與主 記憶體,以及檢測硬體錯誤並回報軟體進行復原處理的硬體檢查架構(Machine Check Architecture,MCA),統統功不可沒。 從 K8 到 Zen,ECC(Error-Correcting Code)越來越強悍,L1 資料快取記憶體可「修 復單位元錯誤,偵測雙位元錯誤」,L2 / L3 快取記憶體更「修復雙位元錯誤,偵測三位 元錯誤」,但「資料損壞了頂多重抓」的 L1 指令快取「不太需要完善保護,只須奇偶校 驗」的原則毫無改變的跡象,事實上也沒必要,起碼節約成本。 K8 整合式記憶體控制器支援防止記憶體多位元錯誤的 Chipkill 技術,如何做到?下面 這張圖闡述得非常清晰。 既然記憶體模組使用的 ECC 演算法無法糾正超過單位元的錯誤,那麼我們就「分而治之 」,讓超過單位元的錯誤,不會出現在單一記憶體模組。假設有 4 條記憶體模組,而記 憶體模組顆粒資料匯流排的寬度為 4 位元,我們各自分開存放 ECC 偵錯碼的額外顆粒的 4 條資料線,和另外 3 條模組的資料線組成 4 位元寬度,即可預防單一記憶體模組發 生超過 1 位元的錯誤。 論伺服器可靠性 RAS,英特爾、AMD 是半斤八兩,像在 Nehalem-EX(Xeon 7500 系列) 時期,英特爾硬把 Itanium 一整套搬到 x86 平台變成「MCA Recovery」,可在記憶體區 塊標示硬體無法修復的錯誤,通知作業系統或虛擬機器管理員不再使用這些單元,關閉標 示錯誤的資料並重新啟動程式,AMD 也從來沒有缺席(軟體支援性就見仁見智了),但 AMD 在 21 世紀初期曾短暫從英特爾手上奪過伺服器的技術優勢,依然值得大書特書。 經過千錘百鍊的快取資料一致性協定 快取資料一致性協定(Cache Coherence Protocol)對多核心與多處理器平台的效能的重 大影響,無論怎麼說都是「著毋庸議」的,不只伺服器 RAS,x86 CPU 在 AMD K7 問世的 MOESI 協定,相較於行之有年的 MESI,Owner 狀態允許尚未更新主記憶體的內容前,不 同 CPU 之間可提前共享、並交換修改後的快取區塊,可大幅減輕系統匯流排的壓力,這 因 K8 整合記憶體控制器,而在多處理器環境,讓主記憶體分散在四處的 NUMA( Non-Uniform Memory Access)架構,更是決定效能的關鍵。 AMD 或多或少有英特爾的 MESIF 協定殷鑑在前,Zen 進一步擴充成 MDOEFSI。 L3 快取「海納」L2 快取標籤(Tag)的巧思,使其搖身一變,成為可過濾快取一致性協 定廣播的 Probe Filter(或稱之為 Snoop Filter,AMD 的行銷名稱是 HT Assist),不 必像 K10 切割部分 L3 快取容量,或在系統晶片組塞一大塊 SRAM 當成記錄所有快取區 塊狀態的目錄,僅付出低成本實現高效率的快取一致性。 將 MDOEFSI 協定的細節束之高閣,目前看來在實體 CPU 晶片(CPU Complex)數量極多 的 EPYC 和 Threadripper 運行還不錯,長期大型單一晶粒共用 L3 快取的英特爾卻沒有 這樣的特殊考量,也許當英特爾哪天基於成本因素,被迫和 AMD 一起「包水餃」,那時 才是考驗英特爾快取一致性協定的最佳時機。 支援大量處理器延展性的系統連結架構 最近 AMD 在財務分析師大會發表名為「Infinity Architecture」的 Infinity Fabric 3.0,不僅可連接多顆 CPU 和多顆 GPU,更可當成 CPU 和 GPU 之間的橋梁。 但這對 AMD 來說並非新穎的概念,AMD 早在十幾年前 K8 的 HyperTransport 就打算這 樣幹了,而 Infinity Fabric 就是從 HyperTranspor 延展出來的「超集合」,擁有更完 整的功能,從定義 AMD 內部 SoC IP 區塊的通用控制方式,到解決異構資料一致性的互 連方案,都是持續進化中的 Infinity Fabric 可大展身手的領域。 AMD 未來面對的挑戰依舊嚴峻 本文標題並不表示 AMD 這間公司就此功德圓滿。回顧 25 年的 AMD K 系列 CPU 迢迢來 時路,想必各位可漸漸感受到身為碩果僅存英特爾唯一 x86 競爭者(好吧,勉強還有台 灣 VIA 的 Centaur 和俄羅斯的 Elbrus),面對資源數倍於己的超級強敵,身處毫無犯 錯餘裕、如履薄冰、步步為營的艱困處境,研製產品時的取捨與掙扎,更是 AMD 困境的 縮影。 至於時下的 AMD 是否「已經」成功,也是個巨大的問號,伺服器市場市占率、營收與獲 利仍遠遠不及 K8 核心 Opteron 全盛期水準,另一邊的 GPU 戰場,還是被 nVidia 壓著 打,實際上只能算勉強站穩腳步,離「成功」兩字仍有一段相當長的距離。AMD 另一個比 較大的潛在危機在於「未來性」,這和公司能真正「發大財」互為表裡。 如果對比「蘇大媽」和「皮衣教主」的演講內容,相信大多數人仍會覺得前者「相當傳統 保守」,後者「象徵光明未來」。從量子電腦、人工智慧到自駕車等新興應用,AMD 統統 沾不上邊,連在高效能運算市場要反攻 Top500 席次都還頗有難度,唯有鞏固並擴張資料 中心的獲利與營收,才有足夠銀彈投資未來。偏偏這裡又是英特爾重兵集結、拚死防禦、 明槍暗箭明招暗招毫無保留的「現金母牛」(Cash Cow),絕不會平白拱手讓人。 AMD 能否守住得來不易的戰果,唯有寄望晶圓代工商業模式有機會讓英特爾的製程霸權從 此一去不復返,或英特爾再度犯下重大戰略失策,但筆者對此的態度並不樂觀,2020 年 第三季的 Zen 3 與第三代 EPYC「Milan」對 AMD 將是極為重要的命運轉捩點。從光鮮亮 麗簡報溢出來的滿滿憂慮,其實都早寫在 AMD 高層和無數員工的臉上,只是你沒看出來 。 好戲即將上演,就讓我們拭目以待。 --
※ 批踢踢實業坊(ptt.cc), 來自: 111.252.43.91 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/PC_Shopping/M.1593624595.A.D74.html

atpx : 該不會是巴哈姆特那位WaterBall? 07/02 01:34

mmonkeyboyy : 超長pipeline& cache上下功夫 不過是加大還是多猜 07/02 01:38

mmonkeyboyy : 才是過去十年來的硬功夫 至於換台積就是品質和產能 07/02 01:39

mmonkeyboyy : 換上了不只一個等級的提升就是了 07/02 01:39

anedo : 他常抱怨文章寫完馬上就被對岸轉走了.. 07/02 01:40

mmonkeyboyy : 架構好也不一定有用 某個頭頭竟然做了APR核心的決 07/02 01:42

mmonkeyboyy : 定 導致核都比別人慢 架構再好看起來還是搞笑 07/02 01:43

mmonkeyboyy : 對岸轉走後還會回頭嗆人 你懂技術嗎XD 07/02 01:43

cz031300 : 文章太長 幫各位簡化 丟掉晶圓廠 抱緊台GG AMD真香 07/02 01:54

mmonkeyboyy : 到不是 這文章有很多硬核的資訊 07/02 01:55

cz031300 : 真的太硬了XDDD 07/02 01:56

mmonkeyboyy : 不過也是少數在講歷史時沒講到Jim大神的文章 07/02 01:57

waiter337 : 看完惹 有夠長 07/02 01:58

kimisawa : 架構外 真的是GG才有今天的反攻 07/02 01:58

mmonkeyboyy : 其實很多公司都是靠GG才上霸主 一沒GG就要GG了 07/02 02:00

kikka : 水球寫了快二十年了吧… 07/02 02:02

AsuMckD : 好了啦 是贏intel了沒 07/02 02:16

yymeow : 「只是你沒看出來」 07/02 02:27

saito2190 : 好長 07/02 02:31

ok771105 : 723表示? 07/02 03:14

wei115 : 推 07/02 04:02

ronald279 : 先推再看 好長 07/02 04:06

hcwang1126 : Top500很快前10就會洗榜 HPC建置到上線會耗個大半年 07/02 04:07

hcwang1126 : 對公司來說就是營收遞延 07/02 04:07

WARgame723 : AMd成功的背後,有一條脊椎 07/02 05:05

hankower : 推 07/02 06:56

suliwen76 : 工讀生? 07/02 07:34

niverse : 推個 07/02 08:05

kaltu : 應該先提醒計算機組織的課程內容沒修過也要自修一點 07/02 08:54

kaltu : 才看得懂 07/02 08:54

testPtt : 太長不想看 07/02 09:03

huckerbying : 我覺得有點奇怪的是文章說分支預測intel已研究多年 07/02 09:06

huckerbying : ,只是沒拿出來說嘴,言下之意是在說ZEN在用的intel 07/02 09:06

huckerbying : 其實也有樣品在? 07/02 09:06

huckerbying : 那吊詭的點就來了…為何捨棄了像AMD的預測,反而用 07/02 09:09

huckerbying : 現在這種難以處理的分支預測系統? 07/02 09:09

giorno78 : 精采 07/02 09:09

david54001 : 推 07/02 09:26

chen5512 : AMD的預測方式與INTEL的預測不同,猜測這與專利可能 07/02 09:26

chen5512 : 有關,所以AMD才另闢一條路也剛好避開INTEL的漏洞 07/02 09:27

kimula01 : 難得的深度文章 07/02 09:52

AKSN74 : 上面噓的還真不意外 07/02 09:55

mmonkeyboyy : AMD分支比較深 所以在預測方面可以做到更多選擇性 07/02 09:59

mmonkeyboyy : Intel也有預測啊 不需要的東西也強迫拿出來 07/02 10:00

mmonkeyboyy : 就變安全性漏洞 倒退十年了啊XD 07/02 10:01

mmonkeyboyy : AMD近年來在3D和記憶體上的設計其實比較大膽也先進 07/02 10:02

mmonkeyboyy : 當年那個推土機APR實在太好笑了.... 07/02 10:03

maplefoxs : 真D深 07/02 10:16

rainnight56 : 要看這篇文章要先修計組計節XD 07/02 10:23

rainnight56 : *結 07/02 10:23

dustlike : 這篇超硬 給正在修計組的學生看才剛好XD 07/02 10:42

b10007034 : P幣黑多少 07/02 10:47

remember : intel 是舊的分支預測很穩定,好幾代都沒大改,數十 07/02 10:51

remember : 年不變XD 07/02 10:51

mmonkeyboyy : 現在要大改了啊 XDXD 07/02 10:55

pc0805 : 還沒贏啦,只是你沒看出來 07/02 10:59

guezt : i有說要改分支預測嗎? 不是丟給OS去補? 07/02 11:17

john60111 : 先推,不然別人以為我看不懂 07/02 11:21

mmonkeyboyy : 應該這麼說 為了解決原來security問題 i皇停了不 07/02 11:34

mmonkeyboyy : 少東西造成效能變差 最近幾次i皇都不停在的提分支 07/02 11:35

mmonkeyboyy : 預測的準備性要提高 面積會加大的 等等blabla etc 07/02 11:35

mmonkeyboyy : 如果都丟給OS補就不用特別提了不是嗎 07/02 11:36

AKSN74 : 面積會加大是指Die size嗎? 07/02 11:37

mmonkeyboyy : 應該說佔的部份會變大 理論上來說用cost換accuracy 07/02 11:39

mmonkeyboyy : 在一篇去年sunny cove的文章有提到 07/02 11:40

Richun : 這篇真的好硬 分支預測跟cache的偷吃步對pipeline 07/02 11:40

Richun : 來說是重點 怎麼取捨是各家不同了 intel:我留些洞 07/02 11:41

mmonkeyboyy : intel 的 分支和prefetch 一直都是他的秘密之一 07/02 11:41

mmonkeyboyy : 他的ooo window根本都要 double了 07/02 11:42

friedpig : 反正本來就是花電晶體都有辦法做到更好 但牙膏王捨 07/02 11:42

friedpig : 不得啊 07/02 11:42

AJizzInPants: 最愛嗆人去自殺的立文出來啦? 07/02 11:42

AJizzInPants: 要好好念書喔 07/02 11:42

mmonkeyboyy : 我猜是....還沒找到更合適的解法 就先拉cost蓋過 07/02 11:43

friedpig : 不過接下來內顯要拆出去 製程在繼續微縮 架構也在重 07/02 11:43

friedpig : 設計了 慢慢就能搞了 不過牙膏王應該還是在找cost跟 07/02 11:43

jim924211 : 我i粉朋友看到這篇文直接崩潰7pupuxd 07/02 11:43

mmonkeyboyy : 就cost 換時間 intel就重新定義了十年前的自己啊 07/02 11:44

friedpig : performance的平衡 加太大面積換到一點點效能他不幹 07/02 11:44

mmonkeyboyy : 不是什麼說的 silicon是鑽石啊....加大一點錢就上去 07/02 11:45

mmonkeyboyy : 很多點 這生意會做不下去啊 07/02 11:45

mmonkeyboyy : 又不是 IBM 老子賣你一萬塊 要不要隨便 07/02 11:45

mmonkeyboyy : L3 不夠 給你 L4好不好啊 再不夠SSD送你當buffer 07/02 11:46

friedpig : 當然也不是大傻幣 不過牙膏王心態應該還是老大心態 07/02 11:46

friedpig : 毛利還是要顧 不能多讓利一點搶效能 07/02 11:46

friedpig : AMD現在是在追的 寧願少賺一點多噴一點效能也好 07/02 11:47

AmibaGelos : 幫補充hsw實測和tage87%像大概是魔改版 至於同樣東 07/02 11:48

AmibaGelos : 西i蓋成洞洞館a ok和設計方向有關 a因重跑耗電加了 07/02 11:48

AmibaGelos : 不準就不預測的但書剛好擋v2 i則是丟給tage榨出最 07/02 11:48

AmibaGelos : 後點性能 skl連stack都一起炒成洞 真.臭臭的大雜燴 07/02 11:48

mmonkeyboyy : 隔壁就照著教科書上寫的 多塞記憶體進去就對了 07/02 11:52

mmonkeyboyy : 不管march有沒有贏 多塞記憶體永遠是最快方式Q_Q 07/02 11:53

mmonkeyboyy : 再搭GG製程 根本就是挖了一個大坑等i皇跳啊 07/02 11:54

friedpig : A其實最有利的就一個點 不放內顯差超多 07/02 11:55

friedpig : 他有本事說服消費者沒內顯 牙膏王內顯佔比超過50% 07/02 11:55

friedpig : 根本佔空間垃圾 07/02 11:55

mmonkeyboyy : 我覺得啦(個人覺得) 是他的APU還沒做好 07/02 11:56

sxing6326 : waterball就超級i粉,為啥i粉看了會崩潰 07/02 11:56

mmonkeyboyy : 我猜今年APU做好跟上了 真的能做到unified memory 07/02 11:56

mmonkeyboyy : 像隔壁棚說法一樣 那真有機會一舉拿下 07/02 11:57

sxing6326 : 其實zen就算07年生不出來,11年除了SMT以外的基礎 07/02 11:58

sxing6326 : 也滿足了,搞推土機真的低能 07/02 11:58

mmonkeyboyy : 最差也有HBM 2.5D等技術黏在一個包裝上 07/02 11:58

mmonkeyboyy : 再拉上他們做家機的基礎 真的不是不可能 07/02 11:59

mmonkeyboyy : 堆土機是個很好的概念 我只能說要在對的時間點投資 07/02 12:00

mmonkeyboyy : 然後不要再請豬頭帶隊了 請找專業人士 07/02 12:00

mmonkeyboyy : 不要再找一堆顧問 MBA 只會拍手互捧說好棒 07/02 12:01

friedpig : 勸你別嘴我大雷隊友ibm喔(? 07/02 12:16

NgJovi : 推土機時曾有文章說 其實推土機不弱 只是浮點不行 07/02 12:21

NgJovi : 是想要把浮點都丟給GPU跑的意思? 07/02 12:22

c52chungyuny: 敬祝AMD窮途末路 拿個zen迴光返照 整體佈局傳統 07/02 12:22

c52chungyuny: 業務繼續跟板廠插葉克膜續命 可憐 07/02 12:22

NgJovi : 結果錯估情勢? 07/02 12:22

c52chungyuny: 給一堆大廠當肉便器的垃圾公司 07/02 12:23

galaxy13 : 是水球 他不是在某科技公司當主管了? 很久沒看他寫 07/02 12:37

galaxy13 : 文章了 07/02 12:39

BFer : c52滾回你的手機板去,別再弄臭這裡了 07/02 12:51

twlin : 有K9啊,就是超深管線的K8,上層的智障想跟p4一樣拼 07/02 13:07

twlin : 頻率,底下工程師拼命說母湯,時程一直底累,最後出 07/02 13:07

twlin : 來一個渣,上層才說怎麼這麼渣,然後沒上市就取消了 07/02 13:07

twlin : XD 07/02 13:07

mmonkeyboyy : 我以前也會在那裡拍手啊....Q_Q 07/02 13:10

mmonkeyboyy : 其實現處理器架構理論還有更大一部份走向SW/HW共同 07/02 13:15

mmonkeyboyy : 設計 這點在IBM上是有顯現出來 還有就是Apple 07/02 13:15

mmonkeyboyy : 這也是為什麼大家說Apple silicon會很可怕 07/02 13:16

mmonkeyboyy : 而且ARM C-X1 也要出來了 (應該沒 NDA了) 07/02 13:16

AMDMARSHAL : 數到三 A飯跟我一起射惹兒 07/02 13:18

mmonkeyboyy : 這會讓更多廠商是不是考慮也跳船 尤其是一堆東西 07/02 13:18

mmonkeyboyy : 又趁著Apple一波跟著轉換 這能量會很大的 07/02 13:19

mmonkeyboyy : i皇還是很厲害的啦 就是核心數有點少就是了 07/02 13:20

commandoEX : 推土機浮點不行,但是用來補浮點的HSA在4年後才真的 07/02 13:25

commandoEX : 出廠... 07/02 13:26

friedpig : 核心數等牙膏王拉的下臉玩M2M就能拉回去了 07/02 13:27

WTFCN : 嗯嗯嗯我也是這麼認為的 07/02 13:33

kira925 : AMD那時候就高估HSA的進度 很多東西都是後來慢慢補 07/02 13:41

kira925 : 像是VEGA那個HBCC HBM的進度 推土機都入土了才有 07/02 13:42

kira925 : 牙膏王的EMIB拿來黏核心的進度不知如何 07/02 13:43

friedpig : 牙膏王連更難搞的3dic都玩了 emib應該也不是問題 07/02 13:46

friedpig : 而且照之前爆料adl內顯就出去了 07/02 13:46

friedpig : 不過不知道會是emib還是mcm就是了kbl-g 用mcm也沒怎 07/02 13:51

friedpig : 樣 反正就當獨顯看就好 07/02 13:51

F04E : P6微架構到現在還在戰你就知道intel牙膏有多大條 07/02 14:24

mmonkeyboyy : 都給各位黏來黏去就好了啊 07/02 14:43

AmibaGelos : 水球其實太神化p6惹 andy glew跟zen最好會有關係啦 07/02 14:58

AmibaGelos : 主要還是吃土雞與喵喵的遺產 這樣扯是不是控肉也算 07/02 14:58

AmibaGelos : orz 另外p6早在控肉就結束惹 sandy比起pm還更像p4 07/02 14:58

o035016 : 先推,免得人家以為我看不懂 07/02 15:21

Jeff1987 : "簡報溢出來的滿滿憂慮"是指ZEN3不樂觀嗎??? 07/02 16:29

gaade : 不樂觀 我猜他是說 "未來性那段" 蘇媽目前目標應該 07/02 16:45

gaade : 穩定公司中短期發展,但是老黃以經侃侃而談自家產品 07/02 16:46

gaade : 未來可以如何風光.對於投資者資金穩定很大吧 07/02 16:47

teenyhey : 牙膏沒救惹,還要被老黃強姦多久= = 07/02 19:45

aegis43210 : HSA還是未來呀,fusion未來一定能成功,只是要i皇和 07/02 21:44

aegis43210 : 蘇媽一起推 07/02 21:44

CORYCHAN : 推水電工哥 07/02 22:35

Canon700D : 想說這語氣怎麼這麼熟悉,回頭看作者才恍然大悟XD 07/02 22:48

KevinR : P6微架構最好是早就結束了 07/02 23:57

mmonkeyboyy : 老黃比較驚吧 ....前年的意氣風發 去年度小月 07/03 00:37

tofukingkion: 求問最後講Zen3的地方是指ZEN3很糟嗎??? 07/03 00:37

mmonkeyboyy : 那只是對大未來的擔心 後面排了ARM RISCV 07/03 00:38

mmonkeyboyy : 再遠一點有量子電腦 07/03 00:39

mmonkeyboyy : 並且i皇也沒那麼弱 只是摔了跤 我到覺得會慌才是正 07/03 00:41

mmonkeyboyy : 確的 現在不慌大概只剩另一個i了 07/03 00:41

ctes940008 : 老黃:停下來等你上車 07/03 07:23

wei1108 : Aqqp 07/03 12:48

mmonkeyboyy : 老黃今年可以笑一下了 不過真不像兩年前意氣風發 07/03 12:51

terry6503 : 還在等水球出書呢~ 07/03 23:40

您可能感興趣