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 颗小的 Encoer
虽然不知道意义何在
啊,但是就是一看非常的
啊,专业
虽然一般视频解码一般是 cpu/GPU 的任务,
但是这次还加入了 APU,来进行一个,啊辅助运算

这个就是 APU 了,在右下角区域
其实就是 NPU,MTK 叫 apu 罢了,里面
可以看到,啊,APU 的面积非常之膨大
按照 ppt 来说
apu 其实负责了很多的单元的额外计算
例如 GPU,ISP,CPU,Decode 的一些任务都交给 apu 来辅助
黄色部分则是 3.5-4MiB 的 Apu Cache
其中这次是 4 大 2 小的 NPU 设计意图
4 颗 Preformance 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 在不同工艺下表现不同,而且在目标频率下,设计出来总是会和实现的频率不同,(具体过几天写吧)

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。