德州奧斯汀團隊,原來三星還有這麼一個團隊!
比起聯發科的純公版ARM開發出來的產品,三星自然較有底氣去改良公版ARM的不足!
https://www.cnbeta.com/articles/tech/986905.htm
ISCA(國際計算機體系結構研討會)是IEEE舉辦的一個會議,關於這個會議,通常我們不會在公眾場合聽到很多。造成這種情況的主要原因是,大多數會議和論文都傾向於以學術為導向,而與實際產品中的實際操作相距甚遠。但到了今年,會議改變了形式,他們增加了行業會議的比重,並提供了行業內各公司的演講和論文,討論的範圍涵蓋了實際的商業產品。
在會議中,三星的SARC(三星奧斯汀研發中心)CPU開發團隊發表了一篇題為“三星Exynos CPU架構的演變”的論文,詳細介紹了該團隊在其8年的發展過程中所做的努力,並介紹了其定制Arm的一些關鍵特徵。在這期間,其CPU內核也從Exynos M1迭代到最新的Exynos M5 CPU。當然,未發布的M6設計在本文也有涉獵。
資料顯示,三星的SARC CPU團隊成立於2011年,公司致力於開發定制的CPU內核,然後三星LSI將其部署到其Exynos SoC中,從2015年在Galaxy S7中發布的第一代Exynos 8890開始,到現在應用在Galaxy S20上的擁有M5內核的Exynos 990,三星團隊已經進行了五代產品的更新。現在,SARC已完成M6微體系結構。
據報導,這些工作是在該公司的CPU團隊被傳於2019年10月解散的消息(從去年12月開始生效)傳出來之前完成的。 ISCA的論文是三星願意發布一些開發團隊的想法的結果,這些想法被認為值得在公眾中保存,這實質上代表了8年開發工作的高層成果。
從M1到M6:持續變型的CPU
本文提供了三星定制CPU內核之間的微體系結構差異的總體概覽表:
披露內容涵蓋了設計的一些眾所周知的特徵,如三星在HotChips 2016的最初M1 CPU微體系結構的深挖以及在HotChips 2018的最新M3所披露的那樣。它使我們可以洞悉我們在S10和S20評測中測得的新M4和M5微體系結構,以及對M6外觀的一瞥。
三星設計的一個關鍵特徵是多年來,他們都是基於2011年開發的M1內核藍圖RTL為基礎,多年來不斷改進內核的功能模塊。但到了M3,內核的設計發生了很大的變化。他們從幾個方面大幅擴展了內核,例如從4寬設計到6寬中核。之前尚未公開的新披露內容將涉及新的M5和M6內核。
對於M5,三星對內核的緩存層次進行了較大的更改,例如用新的更大的共享緩存替換了私有L2緩存,以及公開了L3結構從3組設計到2組的變化,這樣做可以獲得較小的延遲。就微體系結構而言,正在開發中的尚未發布的M6內核似乎是一個更大的飛躍。
SARC團隊在這裡進行了較大的改進,例如將L1指令和數據緩存從64KB增加到128KB,這一設計選擇目前僅在蘋果的CPU內核(從A12開始)之前實現。據說L2的帶寬能力提高了一倍,最高可達64B /週期,L3的帶寬也將從3MB增加到4MB。 M6可能是8寬解碼核心,據我們所知,它至少是我們所知道的最寬的商業微體系結構,至少在解碼方面。
有趣的是,即使內核要寬得多,整數執行單元也不會發生太大變化,只是看到一個複雜的管道增加了第二個整數除法功能,而加載/存儲管道將保持與上一個架構相同。具有1個加載單元,1個存儲單元和1個1加載/存儲單元的M5。在浮點/ SIMD管道上,我們將看到具有FMAC功能的第四個單元。 TLB可能會發生一些大變化,例如L1 DTLB從48頁(pages)增加到128頁,而主TLB從4K頁增加到8K頁(32MB覆蓋)。
自M3以來,M6也是第一次,它將增加內核的亂序窗口,並使用更大的整數和浮點物理寄存器文件,以及從以下時間開始增加ROB(重排序緩衝區)。據透露,這將從228增加至256。 SARC內核的一個主要弱點似乎仍然存在於M5和即將推出的M6內核中,那就是其更深層次的流水線階段導致相對昂貴的16週期錯誤預測損失的結果,遠高於Arm最新設計(11級)的週期。
這篇論文更深入地介紹了分支預測器設計,展示了基於核的可縮放哈希感知器(Scaled Hashed Perceptron )設計。這些年來,設計一直在不斷改進,提高了分支的準確性,從而不斷降低了MPKI(mis-predicts per kilo-instructions)。展示的一個有趣的表是分支預測變量在前端內佔用的存儲結構量,以KB為單位:
IPC每年增加20%,6年內達到2.71倍
本文進一步描述了SARC團隊為改進各代產品的內存延遲所做的努力。在M4內核中,團隊採用了負載-負載級聯機制( load-load cascade mechanism),將後續負載的有效L1週期延遲從4個週期減少到3個。 M4還引入了帶有新接口的path bypass,從CPU核心直接到內存控制器,避免了通過互連的 traffic,這解釋了我們在Exynos 9820中看到的一些更大的延遲改進。
M5引入了推測性高速緩存lookup bypasses,同時向互連和高速緩存標籤發出了一個請求,這可能節省了高速緩存未命中的等待時間,因為內存請求已經在進行中。從M1的14.9個週期降低到M6的8.3個週期,平均負載等待時間已經持續改進了幾代。
在IPC改進方面,SARC團隊在過去8年的開發中設法實現了平均每年20%的改進。如圖所示,M3的IPC實現了大幅度飛躍。 M5與我們在基準測試中看到的大致相關,大約提高了15-17%。據披露,M6的IPC平均值為2.71,而M1的平均值為1.06,此處的圖表通常似乎表明與M5相比提高了20%。
在會議的問答環節中,論文的主持人布萊恩·格雷森(Brian Grayson)回答了有關自研該計劃取消的原因。他透露,團隊始終如一地按時按計劃執行,並且每一代的性能和效率都有所提高。但他表示,團隊最大的困難在於對未來的設計更改要非常謹慎,因為團隊永遠沒有資源完全從頭開始或完全重寫代碼塊。
據說,事後看來,該團隊過去會在某些設計方向上做出不同的選擇。這種串行設計方法與Arm的職位形成鮮明對比,ARM擁有多個跨越式設計中心和CPU團隊,使他們能夠進行諸如徹底重新設計之類的事情,例如Cortex-A76。團隊對於M7等即將到來的內核有很多改進的想法,但是據說取消該計劃的決定是三星公司高層的決定。與Arm的設計相比,SARC CPU內核從未真正具有過競爭力,因為它們的功率效率,性能和麵積使用率下降。隨著ARM最新的Cortex-X1上週透露去為全力以赴的表現,它看起來對我來說,SARC的M6設計將不得不反對競爭的問題。
該論文的作者非常感謝三星公司慷慨地允許發表該論文,並感謝SARC領導層多年來對這個“moonshot” CPU項目的管理。 SARC當前仍在設計自定義互連,內存控制器,以及在自定義GPU架構上工作
本帖最後由 fainted 於 2020-6-4 14:36 編輯
|