此前,我们在 AMD Zen5 技术日活动中与大家分享了 Zen5 的架构设计特性。然而,当时公布的资料有限,并未涉及底层细节,也缺乏与 Zen4 的全面对比。
最近,AMD 更新了 Zen5 架构技术文档,终于公布了我们期待已久的详细信息,包括各个微架构模块的具体变化、桌面端与移动端的差异、Zen5 和 Zen5c 的新理念,以及同样升级的 RDNA 3.5 GPU 和 XDNA 2 NPU。
任何工作都需要目标,CPU 架构设计当然也不例外。
Zen5 的目标很明确,核心目标是继续大幅提升单核和双核性能,为未来奠定新的基础,同时实现满血版 AVX-512,支持可配置的 256/512 位浮点数据路径,有助于大大提升 AI 能力。
值得注意的是,英特尔第 12 代酷睿开始采用异构混合架构,其中 E 核不支持 AVX-512,导致整体不得不放弃 AVX-512 支持。
Zen5 还有一个重要使命,就是进一步普及紧凑版核心,也就是 Zen5c,包括移动端和服务器端。
上一代其实已经有了 Zen4 和 Zen4c,并在数据中心端大放异彩,而在移动端则较为低调地小试牛刀,这次将大面积普及。
不过 AMD 明确表示,Zen5c 这种设计不会在桌面端使用,原因在后面会解释。
此外,更灵活、更高的能效、4/3nm 工艺支持、ISA 指令集增强,也是 Zen5 的主要任务。
Zen5 微架构总览,从前端到后端、从整数到浮点、从缓存到带宽,都进行了全面升级,下面将逐一介绍。
缓存部分是大家经常见到、也比较容易理解的。
Zen5 的一级指令缓存容量仍然为 32KB,8 路关联,每时钟周期两组 32B 拾取;
一级数据缓存容量增至 48KB,12 路关联,每时钟周期 4 个内存操作。
还有一个特殊的操作缓存 (Op-Cache),支持 6 个指令,每时钟周期支持两组 6 个宽度的拾取。
二级缓存容量仍然为 1MB,16 路关联。
分支预测与拾取部分做了很大的优化提升,比如支持“零泡沫”(zero-bubble)条件分支,意味着分支预测器在访问 BTB (分支目标缓冲) 时无需付出任何代价。
L1 和 L2 BTB 也提升了容量 (1.5K/7K 提升到 16K/8K) 和精度,并增大了 TAGE,这对有条件的间接分支都很关键。
此外,每时钟周期拾取和解码指令数从 32B 翻番到 64B,返回寻址堆栈从 32 个变为 52 个,每时钟周期支持最多 3 个预测窗口,指令缓存的延迟和带宽也都有所改善。
新的指令解码系统配备了双解码流水线,可以独立并行处理指令流,每条每时钟周期 4 条指令。
操作缓存 (OpCache) 关联路数增加了 1/3,达到 16 路,可以存储最多 6 条指令,配合双流水线,每时钟周期就是 12 条指令。
在开启 SMT 多线程的时候,每个线程都是一条流水线。
另外,很重要的一点是,通往整数和浮点单元的分派队列宽度从 6 个增至 8 个宏操作 (macro-op),并支持操作融合,可以让来自某些指令的两个宏操作作为一个来处理。
整数单元一直是 Zen 架构的强项,现在更加“膨胀”,分派、重命名、引退达到了 8 个宽度。
ALU 整数逻辑单元从 4 个增至 6 个,包括 3 个乘法单元和 3 个分支单元,ALU 调度器也从 24 个大幅增至 88 个。
AGU 地址生成单元从 3 个增至 4 个,每时钟周期可执行 4 次内存寻址,AGU 调度器从 48 个独立、24 个与 ALU 共享变为独立的 56 个。
可以说,整数单元的大大强化是锐龙 9000 系列在加速频率微增或不动、基准频率降低的情况下取得性能大幅提升的关键所在。
矢量和浮点能力也显著增强,尤其是 AVX-512 指令集终于可以支持完整的 512 位数据路径,同时保留 256 位,非常灵活,可以兼顾高性能和高效率,也不至于让功耗失控。
整个浮点执行单元的带宽和延迟都做了升级,包括 4 条浮点执行流水线 (Zen4 3 条)、3×38 个浮点调度器 (Zen4 2×32 个)、2 条载入存储与整数寄存器流水线、每时钟周期 2 个 512 位载入和 1 个 512 位存储、双循环 FADD 等。
一、二级缓存部分的数据带宽全面扩充,尤其是 一级数据缓存来到了 12 路 48KB,4 条载入/存储流水线每时钟周期可以执行 4 个载入 (Zen4 仍然是 3 个) 和 2 个存储,4 条整数载入流水线可以合并为 2 条。
此外,还全面涉及 TLB、实时窗口、数据预取等部分。
指令新增的不算很多,AVX-512 仍然是重点,包括拓展至 VEX 编码的 VNNI/VEX、矢量配对为一对掩码寄存器的 VP2INTERSECT[DQ]。
另外就是 PMC 虚拟化,可以为客户机提供更好的安全保障,以及异构拓扑,显然是为 Zen5 和 Zen5c 的组合准备的。
Zen5 和 Zen4 技术规格细节对比,也是对上面所述内容的概括。
注意所有列出的参数都发生了变化,从前端到执行单元到缓存,因此可以说 Zen5 是一次全面性的架构翻新,即所谓的“大改”,这才有了频率下降而性能提升的神奇结果。
Zen5 和 Zen5c 在架构设计、IPC 性能、ISA 指令集方面完全相同,也都支持多线程,对于操作系统和应用软件而言是透明和等价的,基本上不需要特别考虑调度问题,这与英特尔的异构大小核天生不同。
Zen5 的追求是尽可能高的单核频率和单核性能,以及足够大的三级缓存。
Zen5c 则降低了频率,提高了能效,同时精简了部分三级缓存。
Zen5 CCX 模块的核心与缓存体系结构图。
一级指令缓存基本没变,仍然是 32KB 容量,8 路关联。
一级数据缓存容量增大了一半,来到 48KB,12 路关联也增多了一半,并且带宽翻番,与 CPU 核心之间每时钟周期支持 4 个载入与 2 个存储。
二级缓存容量仍然是每核心 1MB,但是关联路数翻了一番达到 16 路,带宽也翻了一番,与一级缓存之间是每时钟周期翻番到 64B,与三级缓存之间是每时钟周期 32B,双向都是如此。
三级缓存每 CCX 16MB,16 路关联,但是降低了延迟,提高了命中率。
Zen5 架构在桌面台式机、移动笔记本、服务器数据中心三大领域采取了不同的产品设计和试实现方式,都非常有针对性。
桌面上,经典 chiplet 设计,一个或两个 CCD (等同于 CCX),外加完全延续上代设计的 IOD,架构上是纯粹的 Zen5,不会使用 Zen5c。
笔记本上,继续单芯片,双 CCX 组合成一个 CCD。全部是 Zen5 和 Zen5c 的组合,最多分别 4 个、8 个。
服务器上(包括嵌入式),设计更加灵活,CCX 有的大有的小,Zen5 和 Zen5c 都会有,但应该会和 Zen4 和 Zen4c 一样发展各自的产品线,不会混合使用。

代号 Granite Ridge 的桌面版锐龙 9000 系列的裸片和核心布局图。
与之前基本一致,每一组 CCX/CCD 有 8 个核心、8MB 二级缓存、32MB 三级缓存,但要注意两种 CCX/CCD 并不互通,所以即使 12/16 核心型号有 64MB 三级缓存,但每个核心最多也只能访问自己所在 CCX/CCD 内的 32MB。
当然,理论上可以通过 IF 总线跨越访问,但是带宽太低、延迟太高,无法使用。
IOD 部分与锐龙 7000 系列相同,因此也拥有 2 个 RDNA2 架构的 GPU CPU 单元、128 位双通道 DDR5-5600 内存控制器、28 条 PCIe 5.0 总线、5 个 USB 接口、四组显示输出。
代号 Strix Point 的移动版锐龙 AI 300 系列的裸片和核心布局图。
变化还是挺大的,上一代 Zen4 和 Zen4c 组合只在两款低端型号上低调尝试,这次变成了标准的 Zen5 和 Zen5c 组合。
注意看左上角,分了两个黄色框图,4 个 Zen5 核心和对应的 16MB 三级缓存是一组,8 个 Zen5c 核心和对应的 8MB 是另一组,也就是和桌面上类似甚至更极端,Zen5 和 Zen5c 三级缓存各用各的,无法互通,24MB 只是一个总容量。
GPU 部分是 RDNA3.5 架构,8 组 WGP,也就是 16 个 CU,1024 个流处理器。NPU 部分是 48 阵列的 XDNA 2 架构。这两个大家都很熟悉了。
IO 部分,支持 128 位 LPDDR5X-7500/DDR5-5600 内存、16 条 PCIe 4.0、8 个 USB 接口,包括两个 USB4。
RDNA 3.5 架构的 GPU 在纹理子系统、着色器子系统、光栅子系统、显存/内存子系统等各个方面做了优化和增强,采样率等部分指标性能翻番,可以和 LPDDR5X 内存更好地搭配,压缩率也更高。
当然规模也增大了,12 个 CU 变 16 个 CU,4 个渲染后端 (RB+),最高频率提升至 2.9GHz,理论性能提升了大约 30%,只是由于驱动还未到位,目前在游戏性能上还没有释放出来。
免责声明:本网站内容主要来自原创、合作伙伴供稿和第三方自媒体作者投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。任何单位或个人认为本网站中的网页或链接内容可能涉嫌侵犯其知识产权或存在不实内容时,可联系本站进行审核删除。















