Kurnal

Kurnal

淺談天機9000

前言#

雖說現在 D9000 已經來到了生命的末期
畢竟已經 1 年了
現在炒冷飯雖然沒有什麼意思
但是總該講講了

之前寫的,有錯誤,湊合看吧#

天機 9000 發布於 2021 年 12 月 16 日
採用了 TSMC N4 製成
首發的是 findx5pro 天機版
當然我們這次其實算是首發 Layout
雖然說,啊
tech 已經在很早就發布了 Dieshot
但畢竟是需要錢的,(窮學生怎麼會有財呢)
所以拖到最近才有空進行一個繪畫,
雖然當時發布 dieshot 的時候已經繪畫了
但是當時對一些部分略微不了解
所以鴿到現在
也算是一種首發罷了

那麼這張就是首發的 Dieshot

IMG_2589

可以看到,非常的糊,但是稍微標注了一下,進行了一個對比度的增加以及高分辨率的加

IMG_2590_enlarged

畢竟還是黑白可以對比度拉高一點,眼睛舒服一點,更好辨別。

MediaTek D9000

那麼這張圖中很明顯的是,右上角是 gpu 集群
也就是 Mali g710 mc10,雖然理論最高為 16mp
這裡 mc(multi core)和 mp(multi processor)都是相同的意思
沒有任何區別。

G710 Coreshot

可以很明顯的看出 mali g710 有兩組 ALU cluster

以及 3 組 Gpu Core(橙色部分為 Gpu Cluster io)
4+4+2,當然不知道為什麼這樣設計,簡單扒拉了一下同期發布的 d81 dieshot,沒有這樣設計,蠻奇怪的,啊

左下角為 GPU Cache(黃色),應該是 3MiB。

要知道,G710 相較於前代 g78 雖說同屬 valhall 架構
但是每個 shader 核心包含了兩個執行引擎

G78MP1

實現了 shader 翻倍,理論最高 mc16

在 GPU 架構方面

G710 則是 G78 迭代
G510 則是 G57 迭代
G310 則是 G31 迭代
全部都是 Valhall 架構
Valhall 架構則是從 G77 開始使用的
Valhall 核心相比上代的 Bifrost 改變了
新的超標量引擎(提升 ipc 以及 pw 值)
簡化的 ISA,新的指令組對編譯器更友好
新的指令動態調度
配合 Vulkan 等 API,採用新的數據結構
例如前代的 Bifrost 架構是 4wide/8wide
G72 執行部分包括 4wide 的標量 SIMD,warp size 4
G76 則增加到兩個 4wide,warp size 8
這種窄 warp 設計
導致調度時無法有效填充足夠的線程
而 Valhall 則將 warp 增加到 16wide
這樣 ALU 的利用率就會上升

執行引擎從之前的 3 個合併為一個大的
但是實際 ALU 則仍舊由兩部分組成,2x16wide 的 FMA

相比加 Bifrost 這種,(每個執行引擎都有各自的數字路徑控制邏輯,scheduler,指令緩存)較為浪費資源,
G710 相較於前代,每個 shader 核心包含了兩個執行引擎,實現了 shader 翻倍

引擎內仍舊兩個處理單元,但是稍有變化
在 wide size 和整數吞吐不變的情況下
G710 的處理單元分為 4x4wide
每個引擎都有專門的資源
這種設計實現了每核每周期的 FMA 翻倍
新的 TMU 單元能做到每周期處理 8 個雙線性紋素

G710 把 mali 本來的 job manger 換成了所謂的 CSF
負責處理調度和 draw call

G610 其實就是少於 7 個的 G710

從直面參數來看
G510 和 G310 的確很恐怖(100% 呢)
但是 G31 幾百年沒更新了

G510 的 shader 核心內部多了一個執行引擎
每個執行引擎選配 2 個叢集的處理單元
和 G710 類似
不過 G510 其中一個引擎可以只配一個處理單元
每周期 fma 處理能力可選 48-64
另外在紋理單元可選每周期 4 紋素 / 8 紋素
可選 2-6 核,可以選配 L2
每周期 fma 處理能力可選 48-64,可選 2-6cu

內存帶寬為 60GB(4x16x3750x2÷8)slc 為 6m

雖說 G510 提升巨大但是也是在 G57 不知道多少錢沒改的情況下更新
也就是說,你看起來提升巨大
但是提升的點就是因為幾百年沒更新,
然後突然改個 siv 讓劍橋來幹
G310 同理,G31 那是真的幾百年沒動了
這次更新表面 100 性能提升,但是對比同期甚至上個時期的 cu
你會發現提升個寂寞,這就是 ARM 的巧妙之處

談一談 cpu 部分
上圖是 D9k 的 CPU 集群,處於 soc 中下方

該處理器採用了 ARMv9 指令集的架構
ARMV9 本身是屬於 v8.5 基礎上更新,包含了全部的 v8.5 子集

新增了 sve2 的拓展,
SVE2 本質上是 SVE 的拓展
但是 sve 是單純針對 hpc 的
sve2 則是實現了對 NEON 指令集的兼容,
某種意義上來說,sve2 定位是 NEON 的後續產品,可以實現更靈活的數據訪問。
雖然 sve 本身被 v8.2 所接管,但是實際使用的只有 ARMv1 伺服器 ip
GEMM 與 bf16 是 v8.6 所包含的,所以得等到 v9.1 才被支持。
NEON 的寬度為 128bit(固定)
而 SVE/SVE2 最小為 128bit
可拓展為 2048bit 的寬度。
雖然 NEON 的方法(128bit 固定)不是不可取
但是很麻煩(特別是拓展性(根據 SVE 寄存器的大小,從程序上處理 “數據放哪兒”

與此相比,SVE 的方法具有可拓展性和易部署性 SVE2 的性能與 HPC 的 SVE 相同
但是 DSP 和多媒體方面性能是 128bit 的 1.2x,256bit 的 2x,512bit 的 3.5x

1+3+4 三從集
早期的 aSMP 技術,到之前的 bigLittle,再到現在先進的 DynamIQ 技術
Dynamiq 技術可以讓在最高 32 集群中每集群最高 8 核心都可以在不同電壓曲線上運行,當然這是伺服器的事了。
MTK 工程師則是 HP+BP+HE,也就是三從集,
HP 內核運行在 3.4Ghz 下以滿足高性能需求,要知道目前國內軟件還是吃單核為主

BP 內核則是平衡 Power/Performent 的
HE 定位就是超低功耗超低電壓的甜品待機核
在 ARMv9 中新增了個 DSU110
可以讓其工作負載在多個集群中切換以達到最佳電源效率

DSU110,左上角的是 ARM X2,
關於核心的架構的變化
X2 相較於上代的 X1,流水線縮短了一節,同時在 D9k 上定頻定到了 3.4
粗略推測大概會在 x1 定 3.75 下性能約等
(但是這是工程機頻率,實際則是 3.05,啊)
同時,L3 給了 8M(理論最高 16m,但是 ARM ppt 對標的是 1135g7)
隔壁 SDM 只給了高達 4M,
雖說在同工藝在低頻情況下,x2 相較於 x1 能效比差一點
但是性能只要上來,x2 能效比更強,
也就是說 arm 推薦讓巨核在高頻情況下運行其提高能效比
但是 MTK mp 產品沒給高頻啊,也就 tm 給了個 3.05
所以估計會有一個,啊,
D9000Plus,類似於 8250ab 之類的特挑產品)

雖說看起來 x2 能效比更好
但是其實 x2 同頻能效比肯定比 X1 費電
從 ARM 的 ppt 中
arm 並不用常見的 P/W,用了 Performance/PowerCurve
也就是同性能來看能效比
同性能下,X2 可以用更低的頻率運行,來吃低電壓的優勢。
根據 16%(不同緩存對比法)的 ipc 領先
在低頻情況下可以獲得大概 30%(土 3)的能效比 buff
當然在同頻下 x2 的 power 會高點(那就藏在角落)

同時在 a710 中,足夠平衡的 PPAC 是其設計語言。
在設計上,A710 為 A78 的小修小補
前端比 X2 改的少了,但是還是有足夠的增加幅度,
分支預測的窗口緩存翻倍
增加了 TLBcache(32-48)
uop 砍了,且派發從 6 寬變成 5 寬
降低了一個周期的流水線。

在 PPT,上,在給 8M L3 情況下,相較於 4M 的 L3 的 A78,性能 up10% 或者同性能功耗降低 30%。而且 A710 適合上高頻,ppt 是在 A78 不適合的地方拐的

在 A510 中,這個事 ARM 近期最大的改變
首先解碼從 2 到 3,加入了分支預測,
可以把 A510 組合成雙核複合體,或者單核複合體
L2TLB 和 VPU 載入可以選擇 2x64bit 或者 2x128bit(估計上 128bit 在單核複合體做使用)
刪除了 AA32
小核如果加入 AA32 支持會導致功耗增加,所以 arm 謹慎的在 A710 上保留了 AA32,

在能效比方面
在低頻情況下甚至還不如 A55
且只有在高頻的情況下比 a55 好
但是誰會用高頻的小核呢
在 A510 身上,最明顯的就是可以將 A510 組合成雙核複合體,或將其作為單核複合體進行使用。
雙核複合體共享 L2 緩存、L2 TLB 和 VPU
而單核 A510 則獨占單獨的 L2 緩存、L2 TLB 和 VPU。
在後端方面
整數擁有:
3 個整數 ALU,1 個複雜 MAC,1 個 DIV 單元,1 個分支派送端口,1 個整數除法單元,LSU 和純存單元
VPU 則擁有:PALU
SHARED VPU
(加密單元 VALU,VMAC,VMC,VPU128bit(加密 1,VALU1 VMAC1)

載入方面,2 個載入 / 1 個存儲流水線,流水線為 2x128bit
3 寬順序解碼,分支預測
具備 128 位預取流水線,
每個時鐘周期可拾取 4 條指令
VPU 路徑大小可以是 2×64bit 或 2×128 bit
L1d 則是和 MMU 分開

左上角是 Modem 部分,

Modem 部分其實沒什麼好講的
但是相較別人的 modem 部分的對比,比較感慨

都是,啊,
原圖切割下來的
CPU+Modem 比例相同
但是 cpu 比 cpu 是錯誤的計算
因為合格表述了 cpu/modem 在他們自己的 die 中面積的比值
令人感嘆
不過 SDM 的 modem 需要兼容毫米波
MTK M80 好像不用,
啊,這也是一筆面積
但是大概看看就好了,
畢竟詳細的解讀需要錢,

加上本人也不是專業的,
湊合看看罷了

說起 x65 提一嘴啊
他擁有一個碩大的 Modem Cache
聽聞與 isp 共享,不明了

左下角則是視頻(準確應該叫做流媒體)解碼部分
這次解碼也是採用了 bigLittle
2 顆大的 Encoder
2 顆小的 Encoder
雖然不知道意義何在
啊,但是就是一看非常的
啊,專業
雖然一般視頻解碼一般是 cpu/GPU 的任務,
但是這次還加入了 APU,來進行一個,啊輔助運算

這個就是 APU 了,在右下角區域
其實就是 NPU,MTK 叫 apu 罷了,裡面
可以看到,啊,APU 的面積非常之膨大
按照 ppt 來說
apu 其實負責了很多的單元的額外計算
例如 GPU,ISP,CPU,Decode 的一些任務都交給 apu 來輔助
黃色部分則是 3.5-4MiB 的 Apu Cache
其中這次是 4 大 2 小的 NPU 設計意圖
4 顆 Performance Core 與 2 顆 Flexible Core
看起來應該是 RISC V 的一些東西
不排除 ARM 的可能性

在流媒體解碼部分上面則是一些
不太清楚的單元
例如 imagiq 790
其實就是 isp
這次支持了
三個攝像頭同步處理 32mpx3 18bit HDR 影片
處理速度達到 90 億像素 / 秒
最高 3.2 億像素的 Cmos
處理部分的部分數據給 APU 處理。
可以直接看到紅色部分的 ISP Core

下面的 MiraVision790 則是 Display
顯示處理單元,具體無法分析
右上角則是不知名單元,本人技拙

右下角則是常規的 USB Buffer
還有兩塊 usb io
一共是 3 塊
還有一塊臨近 GPU
內存部分則是 lpddr5x 4x16bit 最高支持 7500Mhz,沒了

最後再談談 tsmc n4

N4 單 Wafer 價格大概是 2w6-3w 刀,畢竟 N5 從 2.6 漲價到 2.8 了
N4 其實就是 n5 的小迭代,
Ti 的看法是:算是一個節點,很顯然不算,
不過 Ti 只要是 CPP/MMP 進行改變只要一點也算罷了
N5: Tsmc 的 N5/N5P
Tsmc5nm 則是一個新的節點
TSMC 在 N5 有 5 個亞點,N5 N5P,N4 N4P N4X

N5:
TSMC 在 N5 有 3 庫,6Track UHD 庫以及 7.5Track HD, 以及 9T HP 庫
6T UHD(密度庫)庫其 Cell H 為 180(6x30)nm,137.6Mtr
7.5TUD (性能庫) 則為 225(7.5 x30)nm 92.3Mtr
9T HP 則為 270(9x30)nm
CPP: 則為 48nm
MMP:則為 30nm
N5 LPE 的理論最高密度,
即 6T UHD,
可達 137.6Mtr/mm2 (預測)
實際則是

N5 最大的问题是热密度
1.8X 的密度下功耗卻只降低到 0.7X
這對於高性能場景非常不利

N5 新提供了 7 個 Vt (SVTLL,SVT,LVTLL,LVT,uLVTLL.uLVT,eLVT)
eLVT 新增額外的 10% 的能耗提升,
其歸功於 Via Piller 以及後道工藝的 Metal 工藝優化,
整體提升 35%(N5 HPC 的 uLVT 相較於 n7 的 uLVT,頻率增加 25%,功耗不變)

N5P,其主要是減少功耗,此過程使用相同的設計規則(DRC),並且與 N5 完全兼容。通過在 FEOL 和 MOL 中優化降低 Power

N4:
N4 相較於 N5 製成,其 Mtr 變化很少,其那 7Mtr 還是其 MMP 縮短罷了…
例如在 D9000 中
X2 採用 210nm 庫
但是實際在 d9k 中
cpu 子系統的所有核心都是 n5 的 210ulvt

一共有 N4,N4P,N4X 三檔,同樣的三庫,6TrackUHD 庫,7.5Track HD,9T HPC
在 N4HP 庫中,共用 N5 HP 庫,N4/N6 則適合跑低頻
6T UHD 庫其 Cell H 為 168(6x28)nm 146Mtr
7.5T 則為 210(7.5 x28)nm 97.8
CPP: 則為 48nm
MMP:則為 28nm, 降低了 2nm…
從 30nm 縮到 28nm
靠縮金屬層間距與閘間距,金屬層層數…

N4 LPE 的理論最高密度,
即 6T UHD,可達 146MTR/mm2

N4P 就一過渡產品,主要是減少 Mask,採用了更多的 euv 層,多了 6 片來著的記得

N4X: 其則是 5nm 的為其終極產品
提供了其高電壓狀態下的高性能
畢竟可以兼容 5nm 設計套件….
但是,也不能一味的按照 MTR 來衡量,畢竟 MTR 各家定義都不同罷了

而且,增加電壓所導致的就是功耗以指數級增加,,定頻高的情況下,動態功耗佔了絕大數
(因為一個 core 在不同工藝下表現不同,而且在目標頻率下,設計出來總是會和實現的頻率不同,(具體過幾天寫吧)

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。