硬科技:各位科科應該知道的AMD Zen 3祕密

2020.11.20 02:43PM
照片中提到了[AMD Official Use Only - Internal Distribution Only]、32K I-Cache、Branch Prediction,包含了軟件、AMD銳龍5 5600X、軟件、AMD銳龍9 5900X、禪宗3

2020年除了大幅改變人類日常生活的武漢肺炎,在電腦技術相關的世界,從8月的「擠牙膏大賽」IEEE HotChips 32一路到「雙A(Apple、AMD)」持續發表新品,全球的科技媒體彷彿集體被迫參加一連串的作文比賽,趕稿趕的沒日沒夜,測試測的焦頭爛額,不亦樂乎,好不熱鬧。

硬科技:AMD Zen 3來了 然後呢?

關於AMD的Zen 3,隨著越來越多的科技媒體,陸續收到樣品並進行大規模產品評測,相信最近眾多科科也留意到隨處可見的「看簡報說故事」,看完了一大堆不知所云的技術名詞後,除了一翻兩瞪眼的效能功耗測試數據,也只留下了「Zen 3好棒棒」的稀薄印象。所以筆者覺得還是得將那些「有字天書」的簡報束之高閣,從比較現實面的角度,用不到千字的篇幅,檢視Zen 3到底改進了什麼。

硬科技:回顧AMD Zen微架構和EPYC (上)
硬科技:回顧AMD Zen微架構和EPYC (中)
硬科技:回顧AMD Zen微架構和EPYC (下)

照片中提到了[AMD Official Use Only - Internal Distribution Only]、MAJOR CHANGES VS. “ZEN 2

我們先來看看Zen 2和Zen 3同為台積電N7製程,八核CCD(Core Complex Die)晶片面積和電晶體的差距。

  • 電晶體:增加6.4%。
  • 面積:增肥10%。

照片中提到了CCD、電晶體、尺寸,包含了音樂、手寫、黑白/ M、字形、文獻

雖然說電晶體數量和晶片面積並不代表效能,但這樣卻能換來將近20%的效能提昇,代表AMD「精鍊」了Zen 2的某些效能瓶頸。

照片中提到了[AMD Official Use Only - Internal Distribution Only]、HISTORIC “ZEN 3

用功的科科們一定依稀記得Zen 3改進的重點「好像集中在指令管線的前端」,但事實真的是如此嗎?

照片中提到了[AMD Official Use Only - Internal Distribution Only]、INDUSTRY LEADERSHIP、

這些線索,其實也不是什麼祕密,可從AMD在10月IEEE Micro發表的某篇論文(“Improving the Utilization of Micro-operation Caches in x86 Processors”),與11月6日在官網發布的軟體最佳化手冊(Software Optimization Guide for AMD Family 19h Processors)挖出一大堆蛛絲馬跡。

不學無術的筆者直接在這裡先講結論:在核心微架構層面,Zen 3「精神上」重現當年K7→K8的歷史,「一切為了最重要的伺服器市場」是最貼切的寫照。

首先,針對「充滿大量分支的大型伺服器端應用程式」最佳化,並縮短發生分支預測錯誤的回復延遲,AMD取消Zen 2的L0 BTB(分支預測目標緩衝器),而加倍L1 BTB (512→1K,L2 BTB則從7K縮減至6.5K),因為只能存放16個分支目標的L0,只能應付小型程式,不足以滿足伺服器應用的需求。

照片中提到了[AMD Official Use Only - Internal Distribution Only]、FETCH/DECODE、Branch Prediction,包含了軟件、AMD銳龍9 5900X、禪宗3、中央處理器、Advanced Micro Devices公司

用來進行實體虛擬位址轉換的TLB(Translate Lookaside Buffer),其L2 TLB在Zen 3可用來管理1GB分頁(Page),這對64位元的伺服器作業系統來說特別的重要。很多人應該會感到一頭霧水的 “+4 TLB Walkers”,意思是AMD為了虛擬化功能的雙層分頁表(Nested Page Table),追加4個TLB管理指令(RMPUPDATE、PVALIDATE、PSMASH、RMPADJUST),說穿了也是為了伺服器。

硬科技:x86虛擬化由內到外還是繼續難搞(中)

照片中提到了[AMD Official Use Only - Internal Distribution Only]、32K I-Cache、Branch Prediction,包含了AMD公司、插座AM4、AMD銳龍9 5900X、Advanced Micro Devices公司、禪宗3

L3快取從2塊16MB整合成單一32MB,存取延遲也從39個時脈週期延長到46個,但可以減輕快取資料一致性協定(Cache Coherence Protocol)的負擔、增加有效儲存容量、並減少CCX之間的通信延遲,怎麼看都比較划算。

照片中提到了SOC、SOC ARCHITECTURE、ROME/MILAN 9 DIE MCM,包含了zen 3 cpu體系結構、禪宗3、py、Advanced Micro Devices公司、計算機架構

其次,AMD設法改善微指令快取(uOp Cache)的輸出率,這也是AMD的媒體簡報沒有講清楚的地方。

照片中提到了X86 Front-end、Instruction、X86 Back-end,包含了角度、輸入輸出存儲器管理單元、Advanced Micro Devices公司、快取、頁表

乍看之下其容量維持4K不變,但Zen 3卻藉由緊縮(Compaction)技術,提高微指令快取內每個快取區塊(Cache Line)可容納的微指令數量,提高微指令快取的實際輸出率,並順勢改進了指令擷取單元,往返於傳統L1指令快取和微指令快取之間的切換時間。

對於Intel Pentium 4的NetBurst微架構還有印象的科科,或許還記得180nm製程Wilamette的Trace Cache,藉由資料壓縮(Compression),將SRAM容量從96kB壓低到80kB,但那只是用來節省電路空間,對效能毫無影響,意義完全不同。

照片中提到了Before Compaction、After Compaction、OC Line-1,包含了肉毒桿菌毒素的脖子、儀表、線、字形、產品

最後,AMD在管線後端的指令排程器和執行單元群,也是大興土木,但筆者硬著頭皮看完坊間大部分媒體的報導之後,可能是筆者書讀的太少或著是知識太過貧乏,還是搞不懂他們講了什麼,究竟有什麼意義,還不如直接看「數字」比較快。

照片中提到了[AMD Official Use Only - Internal Distribution Only]、32K I-Cache、Branch Prediction,包含了軟件、插座AM4、AMD銳龍9 5900X、禪宗3、Advanced Micro Devices公司

AMD在發布Zen 3軟體最佳化手冊時,壓縮檔也一併附上製作日期早一天的「指令效能列表(1個Excel試算表)」,詳列了Zen 3所有1510個指令(Zen 2是1486個,代表Zen 3增加了24個新指令)的解碼後微指令數、可用執行單元、延遲、輸出率。

照片中提到了自動儲存O關閉、Family 19h_Instruction_Latencies_version_1-00 -、人豪劉。,包含了屏幕截圖、屏幕截圖、計算機程序、設計、產品設計

結果如下。

照片中提到了解碼後減少微指令數、25個指令、縮短延遲,包含了圖、產品、產品設計、牌、設計

換言之,Zen 3提昇了多達「五分之二」的指令執行效能。雖然也有像浮點乘法(FMUL)這種效能變弱者(5延遲/2輸出→6延遲/1輸出),但整體來說仍瑕不掩瑜。這張指令效能列表最重要的意義在於:彰顯了AMD認定的「目標市場的應用軟體,最經常用到的指令」,將「電晶體預算」砸在最能強化效能表現的刀口上,隱藏在背後的行銷含意,不言可喻。

不知不覺中,這篇科科文的字數又破了千字,不過假若能讓各位科科更加了解AMD Zen 3的產品設計精神,那作功德的額外字數,也就有存在的意義與價值了。祝福各位科科又有科科笑的一天。