在过去 8 个月中,高通对其高性能 Windows-on-Arm SoC 做出了许多有趣的声明,其中许多将在未来几周接受测试。但在 PC CPU 竞争日益激烈的环境中,除了所有性能声明和宣传之外,还有一个关于骁龙 X 的更基本的问题,我们一直渴望知道:它是如何工作的?
在下周发布之前,我们终于得到了答案,因为今天高通发布了他们期待已久的骁龙 X SoC 架构披露。这不仅包括他们新的定制 Arm v8“Oryon”CPU 核心,还包括他们的 Adreno GPU 的技术披露,以及支持他们大力推广的 AI 功能的 Hexagon NPU。
该公司过去曾明确表示,骁龙 X 是该公司的一项严肃、优先的计划——他们不会只是将现有的 IP 模块拼凑成 Windows SoC 就完事了——因此 SoC 中有很多新技术。
虽然我们很高兴看到这一切,但我们首先要承认,我们最兴奋的是终于能够深入了解 Oryon,即高通定制的 Arm CPU 内核。作为过去几年中第一个从头开始创建的新型高性能 CPU 设计,Oryon 的重要性怎么强调都不为过。除了为新一代 Windows-on-Arm SoC 提供基础(高通希望借此在 Windows PC 市场上占据一席之地)之外,Oryon 还将成为高通传统骁龙移动手机和平板电脑 SoC 的基础。
因此,未来几年,该公司的大量硬件都将基于这种 CPU 架构——如果一切按计划进行,Oryon 将会推出更多代产品。不管怎样,它都会让高通在 PC 和移动领域都从竞争对手中脱颖而出,因为这意味着高通正在摆脱 Arm 的参考设计,而 Arm 的参考设计本质上也是高通的竞争对手。
事不宜迟,让我们深入了解高通的骁龙 X SoC 架构。
Elite、Plus 和当前已发布的 SKU
简单回顾一下,高通迄今已宣布了 4 款 Snapdragon X SKU,所有产品均已提供给设备制造商,将于下周推出。
其中三款是“Elite”SKU,即包含 12 个 CPU 核心。与此同时,高通目前只推出了一款“Plus”SKU,其 CPU 核心数量减少至 10 个。
官方称,高通并未为这些芯片 SKU 指定任何 TDP 等级,因为原则上,任何给定的 SKU 都可以在整个功率水平范围内使用。需要在无风扇笔记本电脑中安装顶级芯片?只需调低 TDP 以匹配您的电源/冷却能力即可。也就是说,要达到高通芯片的最高时钟速度和性能目标,需要大量的冷却和电力输送。为此,我们不太可能看到 X1E-84-100 出现在无风扇设备中,例如,因为它的较高时钟速度会因缺乏散热空间而大量浪费。这不会阻止性能较低的芯片作为预算选项用于更大的设备,但 SKU 表也可以被视为大致按 TDP 排序。
虽然这不是今天披露的内容,但看到更多骁龙 X 芯片 SKU 即将推出,也不要感到惊讶。高通至少还有一款骁龙 X 芯片正在开发中,这已经成为一个鲜为人知的秘密——一款尺寸更小、CPU 和 GPU 核心可能更少的芯片——未来可能会推出更注重预算的 SKU 系列。但目前,高通正从其大芯片开始,因此也是其性能最高的选择。
尽管首批 Snapdragon X 设备要到下周才会与消费者见面,但从 OEM 采用情况来看,这显然将是高通迄今为止最成功的 Windows-on-Arm SoC。与 Snapdragon 8cx Gen 3 相比,采用情况的差异几乎是天壤之别;高通的 PC 合作伙伴已经使用新芯片开发了十几款笔记本电脑型号,而最新的 8cx 则有两种设计。因此,随着微软、戴尔、惠普、联想等公司都在生产 Snapdragon X 笔记本电脑,Snapdragon X 生态系统的起步比之前的任何 Windows-on-Arm 产品都要强大得多。
毫无疑问,这很大程度上归功于高通架构的强大。骁龙 X 搭载了高通宣称比最新(大约 2022 年)8cx 芯片上的 Cortex-X1 内核强大得多的 CPU,并且采用与台积电 N4 节点高度竞争的工艺制造。因此,如果所有条件都正确,骁龙 X 芯片对高通来说应该是一个巨大的进步。
同时,还有另外两个支柱支撑着这款产品的发布。第一个当然是人工智能,骁龙 X 是首款支持 Copilot+ 的 Windows SoC。骁龙 X 的 Hexagon NPU 需要 40+ TOPS NPU,45 TOPS 的 Hexagon NPU 使这款 SoC 成为首款为神经网络和其他模型推理提供如此高性能的芯片。第二个支柱是性能。高通承诺,凭借其多年生产移动 SoC 的经验,其 SoC 的电池续航时间将非常长。如果他们能够实现这一目标,同时实现性能目标——让用户鱼与熊掌兼得——那么它将为骁龙 X 芯片和由此产生的笔记本电脑提供良好的基础。
最终,高通希望实现他们的 Apple Silicon 时刻——重复苹果从英特尔 x86 芯片转向他们自己的定制 Arm 芯片 Apple Silicon 时获得的性能和电池寿命提升。而合作伙伴微软则非常非常希望在 PC 生态系统中拥有 MacBook Air 的竞争对手。这是一项艰巨的任务,其中最重要的原因是英特尔和 AMD 在过去几年中都没有停滞不前,但这并非遥不可及。
话虽如此,高通和 Windows-on-Arm 生态系统确实面临一些障碍,这意味着骁龙 X 的发布轨迹永远无法与苹果相提并论。除了明显缺乏一个统一的开发硬件和软件生态系统的一方(以及推动开发人员为其开发软件之外),Windows 还带有向后兼容的期望,以及由此带来的遗留包袱。微软方面则继续致力于其 x86/x64 仿真层,现在名为 Prism,而骁龙 X 的发布将是它第一次真正接受考验。但即使 Windows 多年来一直支持 Arm,软件生态系统仍在慢慢成形,因此骁龙 X 将比苹果更依赖 x86 仿真。Windows 和 macOS 是非常不同的操作系统,无论是从它们的历史还是所有者的开发理念来看,这在骁龙 X 的头几年尤其明显。
Oryon CPU 架构:一个为所有应用精心设计的核心
为了深入研究架构,我们将从最核心的部分开始:Oryon CPU 核心。
简单回顾一下,Oryon 本质上是高通的第三方收购。该 CPU 核心最初名为“Phoenix”,由芯片初创公司 NUVIA 开发。NUVIA 本身由多位前苹果员工组成,其最初的计划是开发一种新的服务器 CPU 核心,该核心将与现代 Xeon、EPYC 和 Arm Neoverse V CPU 中的核心竞争。
然而,高通抓住了获得优秀 CPU 开发团队的机会,于 2021 年收购了 NUVIA。Phoenix被重新用于消费级硬件,重生为 Oryon CPU 核心。
虽然高通并没有过多关注 Oryon 的根源,但很明显,第一代架构(采用 Arm 的 v8.7-A ISA)仍然深深植根于最初的 Phoenix 设计。Phoenix 本身已经设计为可扩展且节能,因此这对高通来说绝不是坏事。但这确实意味着有许多以客户为中心的核心设计变化没有出现在最初的 Oryon 设计中,我们应该期待在未来几代 CPU 架构中看到这些变化。
深入研究后,正如高通先前披露的那样,骁龙 X 使用了三组 Oryon CPU 核心。从高层次来看,Oryon 被设计为全尺寸 CPU 核心,能够同时提供能效和性能。为此,它是高通所需的唯一 CPU 核心;它并没有像高通之前的骁龙 8cx 芯片或英特尔/AMD 最新的移动芯片那样,单独设置性能优化和效率优化的核心。
据高通披露,所有集群都是平等的。因此,没有一个“效率”集群针对电源效率而非时钟速度进行调整。不过,只有 2 个 CPU 内核(在不同的集群中)可以达到任何给定 SKU 的最高涡轮增压速度;其余内核的最高速度达到芯片的全核涡轮增压速度。
而每个集群又有自己的 PLL,因此每个集群都可以单独计时和通电。实际上,这意味着在工作量较少时,两个集群可以进入休眠状态,然后在需要更多性能时从休眠状态唤醒。
与大多数 CPU 设计不同,高通为 Snapdragon X 和 Oryon CPU 核心集群采用了更扁平的缓存层次结构。L2 缓存不是每个核心都有一个缓存,而是每 4 个核心共享一个缓存(这与英特尔在其 E 核心集群上共享 L2 缓存的方式非常相似)。而且,这也是一个相当大的 L2 缓存,大小为 12MB。L2 缓存是 12 路关联的,即使如此大,在 L1 未命中后访问 L2 缓存的延迟也只有 17 个周期。
这是一个包容性缓存设计,因此它也包含 L1 缓存中内容的镜像。据高通称,他们出于节能原因使用包容性缓存;包容性缓存意味着驱逐要简单得多,因为 L1 数据不需要移动到 L2 才能被驱逐(或者在提升到 L1 时从 L2 中删除)。反过来,缓存一致性是使用 MOESI 协议来维护的。
L2 缓存本身以全核心频率运行。而 L1/L2 缓存操作则是全 64 字节操作,这相当于缓存和 CPU 核心之间每秒数百 GB 的带宽。虽然 L2 缓存主要用于服务其自己的直接连接的 CPU 核心,但高通还实施了优化的集群到集群监听操作,以应对一个集群需要读取另一个集群的情况。
有趣的是,Snapdragon X 的 4 核集群配置甚至还没有 Oryon CPU 集群那么大。据高通工程师称,该集群设计实际上具备处理 8 核设计的所有功能和带宽,毫无疑问,这让人回想起其作为服务器处理器的根源。对于消费级处理器,多个较小的集群为电源管理提供了更高的粒度,并可以作为制造低端芯片(例如 Snapdragon 移动 SoC)的更好的基本构建块,但当这些核心位于不同的集群中时(因此必须通过总线接口单元连接到另一个核心),这将带来一些权衡,即核心到核心的通信速度会更慢。这是一个很小但值得注意的区别,因为英特尔和 AMD 的当前设计都在同一个集群/CCX/环内放置了 6 到 8 个 CPU 核心。
深入研究单个 Oryon CPU 内核,我们很快就明白了高通为何采用共享 L2 缓存:单个内核中的 L1 指令缓存已经非常庞大。Oryon 配备 192KB L1 I-Cache,是 Redwood Cove(Meteor Lake)L1 I-Cache 的三倍,甚至比 Zen 4 的还要大。总体而言,6 路关联缓存允许 Oryon 将大量指令保存在 CPU 执行单元的本地。但不幸的是,我们手头没有 L1I 延迟,无法查看它与其他芯片的比较情况。
总而言之,Oryon 的 fetch/L1 单元每个周期最多可以检索 16 条指令。
这反过来又为非常宽的解码前端提供了支持。Oryon 可以在一个时钟周期内解码多达 8 条指令,解码前端比 Redwood Cove (6) 和 Zen 4 (4) 还要宽。而且所有解码器都是相同的(对称的),因此无需特殊情况/场景即可实现全吞吐量。
与其他当代处理器一样,这些解码后的指令以微操作 (uOps) 的形式发出,以供 CPU 核心进一步处理。从技术上讲,每条 Arm 指令最多可以解码 7 个 uOps,但据高通称,Arm v8 的指令与解码后的微操作的比例通常更接近 1:1。
分支预测是 CPU 核心性能的另一个主要驱动因素,这也是 Oryon 毫不吝啬的另一个领域。Oryon 具有所有常见的预测器:直接、条件和间接。直接预测器是单周期的;同时,分支预测错误会带来 13 个周期的延迟损失。不幸的是,高通并没有透露分支目标缓冲区本身的大小,所以我们不知道它们到底有多大。
不过,我们确实知道 L1 转换后备缓冲区 (TLB) 的大小,它用于虚拟到物理内存地址映射。该缓冲区可容纳 256 个条目,支持 4K 和 64KB 页面。
翻到 Oryon 的执行后端,有很多值得讨论的地方。部分原因是这里有很多硬件和很多缓冲区。Oryon 具有一个相当大的 650+ 重排序缓冲区 (ROB),用于通过无序执行提取指令并行性和整体性能。这使得高通成为最新的 CPU 设计师,它抛弃了传统智慧,推出了一款大型 ROB,避免了声称更大的 ROB 带来的收益递减。
反过来,指令退出与解码器块的最大容量相匹配:8 条指令输入,8 个 uOps 输出。如前所述,解码器在技术上可以为一条指令发出多个 uOps,但大多数情况下它将与指令退出率完美一致。
Oryon 上的寄存器重命名池也相当庞大(你感觉到这里有一个共同的主题吗?)。总共有超过 400 个寄存器可用于整数,另外还有 400 个寄存器可用于馈送矢量单元。
至于实际的执行管道本身,Oryon 提供了 6 个整数管道、4 个 FP/矢量管道和另外 4 个加载/存储管道。高通没有提供每个管道的完整映射,因此我们无法介绍所有可能性和特殊情况。但在较高层次上,所有整数管道都可以执行基本的 ALU 操作,而 2 个可以处理分支,2 个可以执行复杂的乘法累加 (MLA) 指令。同时,我们被告知绝大多数整数运算具有单周期延迟 - 也就是说,它们在单个周期内执行。
在浮点/向量方面,每个向量管道都有自己的 NEON 单元。提醒一下,这是一个 Arm v8.7 架构,因此这里没有任何向量 SVE 或 Matrix SME 管道;CPU 核心的唯一 SIMD 功能是使用经典的 128 位 NEON 指令。这确实将 CPU 限制在比当代 PC CPU 更窄的向量上(AVX2 为 256 位宽),但它确实通过所有四个 FP 管道上的 NEON 单元弥补了这一问题。而且,由于我们现在处于 AI 时代,FP/向量单元支持所有常见数据类型,一直到 INT8。这里唯一值得注意的遗漏是 BF16,这是 AI 工作负载的常见数据类型;但对于严肃的 AI 工作负载,这就是 NPU 的用途。
我们在 Oryon 上还看到了数据加载/存储单元。核心的加载/存储单元非常灵活,这意味着 4 个执行管道可以根据需要在每个周期执行任意组合的加载和存储。加载队列本身最多可以有 192 个条目,而存储队列最多可以有 26 个条目。所有填充都是缓存行的完整大小:64 字节。
支持加载/存储单元的 L1 数据缓存本身也相当大。完全一致的 6 路关联缓存大小为 96KB,是英特尔 Redwood Cove 缓存的两倍(尽管即将推出的 Lion Cove 将大大改变这一点)。而且它经过精心设计,可以有效支持各种不同的访问大小。
除此之外,高通的内存预取器有点儿像“秘方”一样,因为该公司表示,这个相对复杂的单元对性能的贡献很大。因此,高通并没有过多地透露其预取器的工作原理,但毋庸置疑的是,其准确预测和预取数据的能力会对 CPU 核心的整体性能产生巨大影响,尤其是在现代处理器时钟速度下,DRAM 的行程时间很长。总体而言,高通的预取算法力求涵盖多种情况,从简单的邻接和跨度到更复杂的模式,使用过去的访问历史来预测未来的数据需求。
相反,Oryon 的内存管理单元相对简单。这是一个功能齐全的现代 MMU,它支持更多深奥的功能,例如嵌套虚拟化 - 允许客户虚拟机托管自己的客户虚拟机管理程序,以便为更远的虚拟机提供服务。
此处其他值得注意的功能中,硬件表遍历器是另一个值得特别提及的功能。如果缓存行不在 L1 或 L2 缓存中,该单元负责将缓存行移至 DRAM,最多支持 16 次并发表遍历。请记住,这是每个核心的,因此完整的 Snapdragon X 芯片一次最多可以进行 192 次表遍历。
最后,除了 CPU 内核和 CPU 集群之外,我们还拥有 SoC 的最高级别:共享内存子系统。
缓存的最后一级就位于此处,与芯片共享 L3 缓存。考虑到芯片的 L1 和 L2 缓存的大小,您可能会认为 L3 缓存也相当大。但您错了。事实上,高通只为芯片配备了 6MB 的 L3 缓存,这仅仅是其支持的 36MB L2 缓存的一小部分。
由于该芯片在 L1/L2 级别已经具有大量缓存,并且这些缓存之间紧密集成,因此高通在此使用相对较小的牺牲缓存作为进入系统内存之前的最后一站。与传统的 x86 CPU 相比,这是一个相当大的变化,尽管这对高通来说非常符合品牌定位,其 Arm 移动 SoC 通常也具有相对较小的 L3 缓存。至少好处是 L3 缓存访问速度相当快,延迟仅为 26-29 纳秒。并且它具有与 DRAM 相同的带宽(135GB/秒),可以在其下方的 L2 缓存和其上方的 DRAM 之间传递数据。
至于内存支持,如之前的披露所述,骁龙 X 具有 128 位内存总线,支持 LPDDR5X-8448,最大内存带宽为 135GB/秒。在目前的 LPDDR5X 容量下,骁龙 X 最多可以处理 64GB 的 RAM,不过,如果高通在更高密度的 LPDDR5X 芯片开始出货后确认其支持 128GB,我也不会感到太惊讶。
值得注意的是,与其他一些专注于移动领域的芯片不同,骁龙 X 不使用任何类型的封装内存。因此,LPDDR5X 芯片将安装在设备主板上,设备供应商可以选择自己的内存配置。
利用 LPDDR5X-8448 内存,高通告诉我们 DRAM 延迟应该略高于 100ns,为 102-104ns。
最后,我们不妨简要提一下 CPU 安全性。高通支持现代芯片所需的所有安全功能,包括 Arm TrustZone、每个集群的随机数生成器以及指针身份验证等安全强化功能。
值得注意的是,高通声称 Oryon 可以缓解所有已知的旁道攻击,包括Spectre,这种攻击被称为“不断给予的礼物”。这个说法很有趣,因为 Spectre 本身并不是硬件漏洞,而是推测执行的固有后果。这反过来也是它很难完全防御的原因(最好的防御是让敏感操作自己隔离)。尽管如此,高通认为,通过在硬件中实施各种混淆工具,他们可以防范这类旁道攻击。所以看看这将如何发展将会很有趣。
关于 x86 仿真的说明
最后,我想花点时间简单介绍一下有关 Oryon 上的 x86 仿真的信息。
高通的 x86 仿真方案比我们在 Apple 设备上习惯的方案要复杂得多,因为在 Windows 世界中,没有一家供应商能够同时控制硬件和软件堆栈。因此,尽管高通可以谈论他们的硬件,但他们无法控制软件方面的问题 - 而且他们不会冒着集体失言的风险代替微软发言。因此,Snapdragon X 设备上的 x86 仿真本质上是两家公司的联合项目,高通提供硬件,微软提供 Prism 转换层。
但是,虽然 x86 模拟在很大程度上是一项软件任务(Prism 承担了大部分繁重的工作),但 Arm CPU 供应商仍然可以进行某些硬件调整来提高 x86 性能。而高通则已经做出了这些调整。Oryon CPU 内核具有硬件辅助功能,可以提高 x86 浮点性能。为了解决这个可以说是房间里的大象问题,Oryon 还为 x86 独特的内存存储架构提供了硬件调整——这被广泛认为是苹果在自己的芯片上实现高 x86 模拟性能的关键进步之一。
不过,没有人会以为高通的芯片能够像原生芯片一样快速运行 x86 代码。仍然会有一些转换开销(具体多少取决于工作量),性能关键型应用程序仍将受益于原生编译为 AArch64。但高通在这方面并不完全受微软的摆布,他们已经做出了硬件调整来提高其 x86 仿真性能。
在兼容性方面,预计这里最大的障碍是 AVX2 支持。与 Oryon 上的 NEON 单元相比,x86 矢量指令集更宽(256b 对 128b),而且指令本身并不完全重叠。正如高通所说,AVX 到 NEON 的转换是一项艰巨的任务。不过,我们知道这是可以做到的——苹果本周悄悄地将 AVX2 支持添加到他们的游戏移植工具包 2中——因此,看看未来几代 Oryon CPU 核心会发生什么将会很有趣。与苹果的生态系统不同,x86 不会在 Windows 生态系统中消失,因此转换 AVX2(最终是 AVX-512 和AVX10 !)的需求也永远不会消失。
Adreno X1 GPU 架构:更熟悉的面孔
接下来,我们来谈谈骁龙 X SoC 的 GPU 架构:Adreno X。
与 Oryon CPU 内核不同,Adreno X1 并非全新的硬件架构。事实上,在它之前已经推出了三代 8cx SoC,它甚至对 Windows 来说都不算新东西。不过,高通多年来一直对其 GPU 架构守口如瓶,因此 GPU 架构对 AnandTech 读者来说可能也是新东西。可以这么说,十多年来,我一直在试图从高通那里获得详细的披露信息,而随着骁龙 X 的推出,他们终于实现了这一目标。
从高层次来看,Adreno X1 GPU 架构是高通目前正在研发的 Adreno 架构系列的最新版本,其中 X1 代表第 7代。Adreno 本身基于 15 年前从 ATI 收购而来(Adreno 是 Radeon 的字母变位词),多年来,高通的 Adreno 架构一直是 Android 领域最强的 GPU。
当然,Windows 领域的情况略有不同,因为独立 GPU 将集成 GPU 推到了一边,无法处理绝对需要高 GPU 性能的工作负载。而且由于游戏开发从未完全脱离 GPU 架构/驱动程序,高通多年来在 Windows 市场的微不足道的存在导致他们经常被游戏开发商忽视。不过,高通并不是 Windows 游戏的新手,这让他们在试图占据更大的 Windows 市场份额时占据了优势。
从功能角度来看,与当代 x86 SoC 相比,Adreno X1 GPU 架构不幸有点过时。虽然该架构确实支持光线追踪,但该芯片无法支持完整的DirectX 12 Ultimate(功能级别 12_2)功能集。这意味着它必须向 DirectX 应用程序报告自己为功能级别 12_1 GPU,这意味着大多数游戏将限制自己使用这些功能。
尽管如此,Adreno X1 确实支持一些高级功能,这些功能已经在 Android 上积极使用,因为 DirectX 的功能级别并不存在。如前所述,它支持光线追踪,这通过 Vulkan API 及其光线查询调用在 Windows 应用程序中公开。考虑到 Vulkan 在 Windows 上的使用有限,高通可以理解地不会深入探讨这个主题,但听起来高通的实现是2 级设计,具有硬件光线测试,但没有类似于 AMD 的 RDNA2 的硬件 BVH 处理。
另外,还支持可变速率着色 (VRS) 第 2 层,这对于优化移动 GPU 上的着色器工作负载至关重要。因此,似乎阻碍 X1 获得 DirectX 12 Ultimate 支持的功能是网格着色器和采样器反馈,诚然,这是一些相当大的硬件变化。
在 API 支持方面,如前所述,Adreno X1 GPU 支持 DirectX 和 Vulkan。高通为 DirectX 12 和 DirectX 11、Vulkan 1.3 和 OpenCL 3.0 提供原生驱动程序/路径。这里唯一值得注意的例外是 DirectX 9 支持,与 SoC 供应商英特尔一样,它是使用D3D9on12实现的,它将 DX9 命令转换为 DX12。如今 DX9 游戏很少见(15 年前 API 就被 DX10/11 取代了),但由于这是 Windows,因此向后兼容性是持续的期望。
相反,甚至支持微软用于机器学习的低级 GPU 访问的新 DirectML API。高通甚至优化了为 GPU 编写的元命令,以便利用 DirectML 的软件可以更高效地运行,而无需了解架构的其他任何信息。
Adreno X1 GPU 架构详解
除了高级功能之外,我们来看看低级架构。
Adreno X1 GPU 分为 6 个着色器处理器块,每个块提供 256 个 FP32 ALU,总共 1536 个 ALU。峰值时钟速度为 1.5GHz,这让骁龙 X 上的集成 GPU 的最大吞吐量达到 4.6 TFLOPS(低端 SKU 的吞吐量较低)。
与其他 GPU 一样,GPU 的前端分为传统的前端/SP/后端设置,前端负责处理三角形设置和光栅化,以及 GPU 基于图块的渲染模式的合并。值得注意的是,GPU 前端每时钟可以设置和光栅化 2 个三角形,这在 2024 年的 PC 领域不会引起任何关注,但对于集成 GPU 来说已经很不错了。为了提高性能,前端还可以进行早期深度测试,以拒绝在光栅化之前永远不会可见的多边形。
同时,后端由 6 个渲染输出单元 (ROP) 组成,每个单元每个周期可以处理 8 个像素,总共渲染 48 个像素/时钟。渲染后端插入本地缓存,以及高通称为 GMEM 的重要暂存器内存。
单个着色器处理器块本身是比较常见的,特别是如果你看过 NVIDIA GPU 架构图的话。每个 SP 进一步细分为两个微管道(微着色器管道纹理管道,或 uSPTP),由其自己的专用调度程序和其他资源(如本地内存、加载/存储单元和纹理单元)控制。
每个 uSPTP 提供 128 个 FP32 ALU。而且,有点令人惊讶的是,还有一组单独的 256 个 FP16 ALU,这意味着 Adreno X1 在处理 FP16 和 FP32 数据时不必共享资源,这与在 FP32 ALU 上执行 FP16 操作的架构不同。不过,如果 GPU 调度程序确定需要,FP32 单元也可以用于 FP16 操作。
最后,有 16 个基本函数单元 (EFU),用于处理超越函数,例如 LOG、SQRT 和其他罕见但重要的数学函数。
令人惊讶的是,Adreno X1 使用的波前尺寸相当大。根据模式,高通使用 64 或 128 通道宽的波前,高通告诉我们,他们通常使用 128 宽的波前进行 16 位操作(例如片段着色器),而 64 宽的波前用于 32 位操作(例如像素着色器)。
相比之下,AMD 的 RDNA 架构使用 32/64 宽波前,而 NVIDIA 的波前/扭曲始终为 32 宽。宽设计在 PC 领域已经失宠,因为难以保持馈电(发散太大),所以这很有趣。尽管人们通常担心波前大小,但考虑到高通智能手机 SoC 的高 GPU 性能,它似乎对高通来说效果很好——考虑到手机屏幕的高分辨率,这绝非易事。
除了 ALU 之外,每个 uSPTP 都包含自己的纹理单元,每个 uSPTP 每时钟能够输出 8 个纹理像素。这里还有有限的图像处理功能,包括纹理过滤,甚至用于生成运动矢量的 SAD/SAS 指令。
最后,每个 uSPTP 中都有相当多的寄存器空间。除了 L1 纹理缓存外,还有总共 192KB 的通用寄存器,用于为各个块提供信息并试图隐藏波前的延迟气泡。
如前所述,Adreno X1 支持多种渲染模式,以获得最佳性能,该公司称之为 FlexRender 技术。这是一个在 PC GPU 设计中不太常见的主题,但由于历史和效率原因,在移动领域却更为重要。
除了传统的直接/即时模式渲染方法(大多数 PC GPU 的典型模式)之外,高通还支持基于图块的渲染,他们称之为合并模式。与其他基于图块的渲染器一样,合并模式将屏幕分成多个图块,然后分别渲染每个图块。这允许 GPU 一次只处理一部分数据,将大部分数据保存在其本地缓存中,并最大限度地减少流向 DRAM 的流量,这既耗电又会限制性能。
最后,Adreno X1 有第三种模式,它结合了分箱渲染和直接渲染的优点,他们称之为分箱直接模式。此模式在切换到直接渲染之前运行分箱可见性通道,作为进一步剔除背面(不可见)三角形的手段,以便它们不会被光栅化。只有在剔除这些数据后,GPU 才会切换到直接渲染模式,现在工作量减少了。
使分级渲染模式正常运行的关键是 GPU 的 GMEM,这是一个 3MB 的 SRAM 块,可作为 GPU 的高带宽暂存器。从架构上讲,GMEM 不仅仅是一个缓存,因为它与系统内存层次结构分离,并且 GPU 几乎可以对内存执行任何操作(包括在必要时将其用作缓存)。
GMEM 块的大小为 3MB,整体上不算很大。但足以存储一个图块,从而防止大量流量冲击系统内存。而且它的速度也很快,带宽为 2.3TB/秒,足以让 ROP 全速运行,而不受内存带宽的限制。
有了 GMEM 块,在理想情况下,GPU 只需要在完成渲染该图块时,每部作品向 DRAM 写入一次数据。当然,在实践中,DRAM 流量会比这更多,但这是高通避免 GPU 向 DRAM 写入数据而占用内存带宽和电量的关键功能之一。
当Adreno X1 确实需要进入系统内存时,它会经过自己剩余的缓存,最后到达 Snapdragon X 的共享内存控制器。
在 GMEM 之上,每对 SP 都有一个 128KB 的集群缓存(对于完整的 Snapdragon X,总共有 384KB)。而在此之上,还有一个 1MB 的 GPU 统一 L2 缓存。
最后,剩下系统级缓存 (L3/SLC),它为 GPU 上的所有处理块提供服务。当所有其他方法都失败时,还有 DRAM。
最后,值得注意的是,Adreno X1 GPU 还在 GPU 内包含一个专用的 RISC 控制器,用作 GPU 管理单元 (GMU)。GMU 提供多种功能,其中最重要的是 GPU 内的电源管理。GMU 与 SoC 其他地方的电源管理请求协同工作,允许芯片根据 SoC 决定的最佳性能分配方法在不同的块之间重新分配功率。
性能和初步想法
最后,在结束这次架构深度剖析之前,让我们先来看看高通的几张性能幻灯片。虽然全世界下周零售设备发布时就能亲眼看到骁龙 X 的性能,但在此之前,它让我们对预期结果有了更多的了解。但一定要谨慎对待。
在 CPU 方面,高通声称 Snapdragon X Elite 可以在 GeekBench 6.2 单线程测试中击败所有当代 PC 竞争对手。而且,在考虑能效时,其领先优势也相当显著。
简而言之,高通声称,即使 x86 核心的 TDP 不受限制,Snapdragon X Elite 中的 Oryon CPU 核心在绝对性能方面也能击败 Redwood Cove(Meteor Lake)和 Zen 4(Phoenix)。鉴于移动 x86 芯片的加速高达 5GHz,这是一个大胆的说法,但并非不可能。
与此同时,在 GPU 方面,高通也取得了类似的能效提升。不过,所讨论的工作负载 3DMark WildLife Extreme 不太可能转化为大多数游戏,因为这是一个专注于移动设备的基准测试,长期以来一直在每个移动 SoC 供应商的驱动程序中经过反复优化。
使用实际游戏进行的性能基准测试在这里可能更有用。尽管高通可能在挑选一些好产品,但顶级骁龙 X SKU 经常与英特尔的 Core Ultra 7 155H 交锋。不可否认的是,它的整体表现并不令人印象深刻,但很高兴看到高通目前在真实游戏中的表现。在这种情况下,即使只是英特尔更好的移动芯片之一的平局/击败,也不算糟糕。
初步想法
以上就是我们对高通骁龙 X SoC 架构的首次深入研究。高通将长期投资 Windows-on-Arm 生态系统,希望这将成为众多生态系统中的第一个,因为该公司正在寻求成为第三大 Windows CPU/SoC 供应商。
但 Snapdragon X SoC 及其 Oryon CPU 核心的最终意义不仅仅在于作为笔记本电脑的 SoC。即使高通在这方面取得了巨大成功,他们出货的 PC 芯片数量与他们真正的实力基础:Android SoC 领域相比也只是九牛一毛。而 Oryon 将在这里照亮高通移动 SoC 实现重大变革的道路。
正如高通自 Oryon 之旅开始以来所指出的那样,这最终将成为高通所有产品的核心 CPU 内核。从本月开始的 PC SoC 最终将扩展到包括骁龙 8 系列等移动 SoC,再往前走,还将是高通的汽车产品和 XR 耳机 SoC 等高端分支。虽然我怀疑我们是否真的会从上到下地在高通的产品中看到 Oryon 及其继任者(该公司需要小而便宜的 CPU 内核来支持其预算产品线,如骁龙 6 和骁龙 4),但毫无疑问,从长远来看,它将成为他们大多数产品的基石。这就是制造自己的 CPU 内核的差异化价值——通过在尽可能多的地方使用它来从 CPU 内核中获得最大价值。
最终,高通在过去 8 个月中一直在大肆宣传其下一代 PC SoC 及其定制的 CPU 核心,现在是时候让所有部件都到位了。在 PC CPU 领域拥有第三个竞争对手(并且是基于 Arm 的竞争对手)的前景令人兴奋,但幻灯片和广告不是硬件和基准。因此,我们热切地等待下周会带来什么,看看高通的工程实力是否能够实现公司的宏伟抱负。