三星Exynos团队首次披露M6 CPU内核设计:史上最强“胎死腹中”
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 架構上工作。
總結
以上是生活随笔為你收集整理的三星Exynos团队首次披露M6 CPU内核设计:史上最强“胎死腹中”的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 归乡历险记结局(归乡历险记)
- 下一篇: 特斯拉Model 3中保研碰撞测试完成!