
文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片

文章图片
【高通的Centriq 2400和Falkor架构】
文章图片

文章图片

文章图片

探秘高通Falkor云处理器 。
云计算在 2010 年左右迅速崛起 , 这得益于 AMD 的皓龙(Opteron)和英特尔的至强(Xeon)处理器 。 庞大的云市场激发了包括高通在内的其他 CPU 制造商的兴趣 。 到 2010 年代中期 , 高通已在移动 SoC 市场成长为一支强大的力量 , 并拥有多个内部 CPU 设计 。 他们有充分的理由对其云服务器前景充满信心 。 服务器芯片的高核心数意味着低单核功耗 , 这削弱了AMD 和英特尔在高单线程性能方面的最大优势 。
与此同时 , 高通的移动背景使其在低功耗 CPU 设计方面积累了丰富经验 。 其庞大的移动产品销量使其能够采用三星的 10nm FinFET 工艺 。 这至少可以让高通在功耗和密度方面与英特尔的 14nm 工艺竞争 , 甚至可能带来直接优势 。 高通希望利用这些因素在云计算领域推出更便宜、功耗更低的竞争对手 。
为了进入云计算领域 , 高通需要一种具有足够性能的 CPU 架构 , 以满足尾端延迟等关键指标 。 在 Hot Chips 演讲中 , 高通指出 , 仅仅在芯片上堆砌弱核心并不能解决问题 。 ARM 架构的云 CPU 可能不必在核心性能上与英特尔和 AMD 一一对应 , 但它们确实需要达到基线性能水平 。 高通希望在保持其传统功耗和密度优势的同时做到这一点 。
核心概述Falkor CPU 架构旨在以低功耗和小芯片面积满足性能阈值 。 Falkor 是一款四发射 aarch64 核心 , 继承了高通此前移动核心的特性 。 它运行 64 位 ARM 指令集(aarch64 , armv8) , 并从 armv8.1 引入了一些功能 。 由于现有的 ARM 服务器应用程序基础不大 , 因此不支持 32 位 ARM 。 Falkor 是高通的第五个内部核心设计 , 也是该公司首个专门为云计算设计的核心 。
Centriq 2400 系列芯片在 398mm2 的芯片上集成了多达 48 个 Falkor 核心 , 热设计功耗(TDP)为 120W 。 这意味着每个核心的功耗不到 2.5W 。 高通指出 , 在典型的全核心负载下 , 功耗通常远低于 120W 。
高通展示Centriq服务器SKU的幻灯片
前端Falkor 和高通之前的 Krait 架构一样 , 同时拥有 L0 和 L1 指令缓存 。 24KB、3 路组相联的 L0 缓存以更低的功耗和更低的延迟提供指令 。 L0 的大小足以容纳大多数指令提取 , 而 64KB、8 路的 L1 指令缓存则处理更大的代码占用空间 。 尽管 L0 的作用类似于其他 CPU 中的微操作缓存和循环缓冲区 , 但它像传统指令缓存一样存储 ISA 指令字节 。
两个指令缓存层级都有足够的带宽为 Falkor 的四发射解码器提供指令 。 这两个指令缓存层级是互斥的 , 因此核心实际上拥有 88KB 的指令缓存容量 。 高通可能使用了 victim 缓存设置来维持这种互斥关系 。 如果是这样 , 传入的探测请求必须同时检查 L0 和 L1 , 并且 L1 访问除了填充 L0 之外 , 还需要从 L0 回写的额外开销 。 包含性设置会让 L1 充当 L0 的窥探过滤器 , 并减少 L1 访问的开销 , 但总缓存容量较少 。
与同时代的核心相比 , 互斥的 L0/L1 设置为 Falkor 提供了高指令缓存容量 。 直到几年后苹果的 M1 推出 , Falkor 在这方面才被超越 。 高指令缓存容量使得 L2 代码提取带宽变得不那么重要 。 与当时许多 64 位 ARM 核心(甚至 AMD 的 Zen 之前核心)一样 , 一旦代码溢出到 L2 , Falkor 的指令吞吐量会急剧下降 。 不过 , Falkor 在这方面的表现比 A72 更好 。
Falkor 的指令缓存和许多 CPU 一样采用奇偶校验保护 。 硬件通过使损坏的缓存行失效并从 L2 重新加载来解决奇偶校验错误 。 指令缓存还将分支目标与指令字节一起存储 , 因此充当分支目标缓冲区(BTB) 。 一次缓存访问即可提供指令和分支目标 , 因此 Falkor 不必像具有独立 BTB 的核心那样进行单独的 BTB 访问 。 然而 , 这使得分支预测器在 L1i 未命中时无法跟踪指令流 。
在 L0 中 , 已执行的分支会产生一个流水线气泡(2 周期延迟) , 而从 L1 获取则最多需要 6 周期延迟 。 对于较小的分支占用空间 , Falkor 使用 16 条目分支目标指令缓存(BTIC)实现零气泡已执行分支 。 与 BTB 不同 , BTIC 缓存的是分支目标处的指令 , 而不是目标地址 。 因此 , 它绕过了缓存延迟 , 允许零气泡已执行分支 , 而无需使 L0 实现单周期延迟 。
方向预测使用多个历史表 , 每个历史表使用不同的历史长度 。 分支预测器跟踪给定分支最适合的历史长度和相应的表 。 高通描述的方案在概念上类似于 TAGE 预测器 , 后者也使用多个历史表和标签表来指示它们对给定分支是否有用 。 Falkor 不一定使用经典的 TAGE 预测器 。 例如 , 历史长度可能不是几何级数 。 但为每个分支使用最合适的历史长度来节省历史存储的想法仍然存在 。 ARM 的 Cortex A72 使用两级预测器 , 可能带有单个表和固定历史长度 。
在一个具有不同数量分支的抽象测试中 , 每个分支以长度递增的随机模式被执行或不执行 , Falkor 的表现略好于 Kryo 。 Falkor 在处理大量分支时表现更好 , 尽管对于少量分支 , 两个核心能够处理的最长重复模式相似 。
Falkor 为间接分支提供了两级间接目标数组 , 间接分支从寄存器读取目标 , 而不是指定跳转距离 。 间接分支可能指向不同的目标 , 这给分支预测增加了另一个难度维度 。 Falkor 的第一级间接目标数组有 16 个条目 , 第二级有 512 个条目 。
只要间接分支的目标总数不超过 16 个 , 就几乎没有惩罚 。 这可以是一个在 16 个目标之间切换的分支 , 或者是八个在两个目标之间交替的分支 。
返回是间接分支的一种特殊情况 , 因为它们通常返回到调用站点 。 Falkor 和 Kryo 一样有一个 16 条目返回栈 。 Cortex A72 有一个更大的 31 条目返回栈 。 在 Falkor、Kryo 和 A72 上 , 函数调用和返回大约需要四个周期 , 平均每个带链接的分支指令需要 2 个周期 。
Falkor 的解码器每个周期最多将四条指令转换为微操作 。 与大多数其他 CPU 一样 , 高通旨在将大多数常见指令解码为单个微操作 。 值得注意的是 , 128 位向量数学指令是个例外 。
重命名 / 分配来自解码器的微操作需要在后端分配资源 , 以便在乱序执行期间进行记录 。 Falkor 的重命名器每个周期最多可以处理四个微操作的寄存器重命名和资源分配 。 然而 , 第四个槽位只能处理直接分支和少数特殊情况 , 如 NOP 或已识别的寄存器清零情况 。 包含 ALU 操作的条件分支(如 cbz/cbnz)不能进入第四个槽位 。
高通 Hot Chips 演讲的幻灯片
除了通过将立即值零移动到寄存器中来对寄存器清零的特殊处理外 , 本文没有看到其他常见的优化 。 没有 MOV 消除 , 重命名器也无法识别将寄存器与自身异或或相减会得到零 。
乱序执行
Falkor 没有经典的重排序缓冲区(ROB) , 而是使用一系列结构共同实现乱序执行 , 同时确保程序结果与顺序执行一致 。 Falkor 有一个 256 条目的重命名 / 完成缓冲区 。 高通进一步表示 , Falkor 可以有 128 条未提交指令在执行中 , 加上另外 70 多条未提交指令 , 总共有 190 条在执行中的指令 。 核心每个周期可以退出 4 条指令 。
从微基准测试的角度来看 , Falkor 的行为类似于 ARM 的 Cortex A73 。 它可以在长延迟加载后释放寄存器和加载 / 存储队列条目等资源 , 即使超过 256 条指令 , 乱序执行能力也没有明显限制 。 未解决的分支同样会阻塞乱序资源释放 , 此时可以测量 Falkor 的重排序窗口 。 此时 , 本文可能正在测量高通所认为的未提交指令 。
从未提交指令的角度来看 , Kryo 和 Falkor 的重排序能力相似 。 但除此之外 , 高通已经重新平衡了执行引擎 , 以支持非向量代码的一致性能 。 Falkor 的寄存器文件条目比 Kryo 多一些 , 更关键的是 , 内存排序队列要大得多 。
Falkor 的整数执行流水线专门用于处理不同类别的操作 。 三个流水线有整数 ALU , 第四个流水线专用于直接分支 。 间接分支使用其中一个 ALU 端口 。 另一个 ALU 端口有一个整数乘法器 , 可以在 5 周期延迟内每个周期完成一次 64 位乘法 。 每个 ALU 流水线有一个中等大小的调度器 , 约有 11 个条目 。
Falkor 有两个基本对称的 FP / 向量流水线 , 每个流水线也有一个 11 条目调度器 。 两个流水线都可以处理基本操作 , 如 FP 加法、乘法和融合乘加 。 向量整数加法和乘法也可以在两个流水线上执行 。 更专业的操作(如 AES 加速指令)仅由一个流水线支持 。
FP 和向量执行延迟与 Kryo 相似 , 标量 FP 操作的吞吐量也是如此 。 Falkor 的两个 FP / 向量流水线每个周期的吞吐量均为 64 位 。 128 位数学指令被分解为两个微操作 , 因为它们在调度器、寄存器文件和完成缓冲区中占据两个条目 。 这两个因素都会影响向量化代码的潜在收益 。
内存访问Falkor 的加载 / 存储子系统设计为每个周期处理一次加载和一次存储 。 内存流水线从一对地址生成单元(AGU)开始 , 一个用于加载 , 一个用于存储 。 两个 AGU 都由一个约 13 条目的统一调度器提供数据 。 对于 L1D 命中 , 加载到使用的延迟为 3 个周期 , 加载 AGU 可以处理索引寻址而没有惩罚 。
来自加载 AGU 的虚拟地址(VA)用于访问 32KB、8 路的 L1 数据缓存 , 该缓存每个周期可以提供 16 字节 。 通过测试 , Falkor 每个周期可以处理一次 128 位加载或存储 , 或者在同一个周期处理一次 64 位加载和一次 64 位存储 。 混合 128 位加载和存储不会使吞吐量超过每个周期 128 位 。
缓存中的每个位置都有一个虚拟标签和一个物理标签与之关联…… 如果不必在缓存之前进行 TLB 查找 , 就可以更快地获取数据 , 并且可以以更好的延迟返回数据 。
—— 高通 Hot Chips 29 演讲
L1D 同时具有虚拟标签和物理标签 , 这使得 Falkor 无需等待地址转换即可从 L1D 检索数据 。 传统的 VIPT(虚拟索引 , 物理标签)缓存可以使用虚拟地址选择一组缓存行 , 但需要物理地址(PA)在检查标签是否命中之前可用 。 高通表示 , 某些加载可以完全跳过地址转换 , 因此加载根本不需要检查物理标签 。 这是一个非常有趣的设置 , 令人好奇它会如何处理多个 VA 别名指向同一个 PA 的情况 。
…… 这是一种构建在 L1 数据缓存旁边的新颖结构 , 几乎像一个回写缓存 。 它结合了存储缓冲区、加载填充缓冲区和来自 L2 的窥探过滤器缓冲区 , 因此这种位于旁边的结构为我们提供了回写缓存的所有性能优势和功耗节省 , 而无需 L1 数据缓存真正成为回写缓存 。
—— 高通 Hot Chips 29 演讲
Falkor 的存储流水线根本不检查标签 。 核心有一个直写式 L1D , 并使用一个未命名的结构来提供回写式 L1D 的功耗和性能优势 。 从功能上讲 , 它听起来类似于 Bulldozer 的写合并缓存(WCC) , 因此在高通没有提供更好名称的情况下 , 本文将其称为 WCC 。 对同一缓存行的多次写入在 WCC 中合并 , 减少了 L2 访问 。
Falkor 上的存储操作访问 L1D 物理标签以确保一致性 , 并且在到达 WCC 后进行访问 。 因此 , 存储合并机制也有助于减少物理标签检查 , 节省功耗 。
高通有理由说他们可以提供回写缓存的性能 。 Falkor 核心每个周期不能写入超过 16B , 而 L2 的带宽似乎比这高得多 。 查看 WCC 的一种方法是每个 128B 缓存行进行一次存储 , 这表明它是一个每个核心 3KB 的结构 , 并且可以每 2-3 个周期将一个 128B 缓存行回写到 L2 。 但实际上软件不应该遇到这种情况 。
其他使用直写式 L1D 的架构(尤其是英特尔的奔腾 4 和 AMD 的 Bulldozer)在存储转发性能方面表现不佳 。 Falkor 在这方面表现不好 , 但也不是很差 。 在依赖的存储操作中 32 位对齐的加载可以在 8 周期延迟内获取数据(因此存储可能需要 4 个周期 , 加载需要 4 个周期) 。 较慢的情况(包括部分重叠)仅需多一个周期即可处理 。 本文怀疑大多数核心通过等待存储提交 , 然后让加载从缓存中读取数据来处理部分重叠 。 高通可能为 Falkor 提供了更高级的转发机制 , 以避免从 WCC 读取的惩罚 。
使用直写式 L1D 使高通能够对 L1D 进行奇偶校验保护 , 而无需 ECC 。 与指令缓存一样 , 硬件通过从较低级别的缓存(受 ECC 保护)重新加载缓存行来解决奇偶校验错误 。
地址转换与移动核心不同 , 服务器核心可能会在虚拟机中运行的工作负载遇到大的数据占用空间 。 虚拟化会显著增加地址转换开销 , 因为程序可见的 VA 会被转换为 VM 可见的 PA , 而 PA 又会通过虚拟机监控器页表转换为主机 PA 。 TLB 未命中可能需要遍历两组分页结构 , 使一次内存访问在底层变为十几次访问 。
Kryo 似乎有一个单级 192 条目 TLB , 显然不适合这种服务器需求 。 Falkor 放弃了这种 “全有或全无” 的方法 , 转而采用更传统的两级 TLB 设置 。 64 条目 L1 DTLB 由 512 条目 L2 TLB 支持 。 从 L2 TLB 获取转换仅增加两个周期的延迟 , 使其相当快 。 L1 DTLB 和 L2 TLB 都存储 “最终” 转换 , 将程序的虚拟地址一直映射到主机上的物理地址 。
Falkor 还有一个 64 条目 “非最终” TLB , 用于缓存指向最后一级分页结构的指针 , 并可以跳过大部分页遍历 。 另一个 64 条目 “阶段 2” TLB 缓存从 VM PA 到主机 PA 的转换 。
系统架构服务器芯片必须支持高核心数和高 IO 带宽 , 这是服务器和移动 SoC 之间的另一个显著区别 。 高通在称为双工(duplexes)的双核集群中实现 Falkor 核心 , 并将其用作 Centriq 服务器 SoC 的基本构建块 。 Kryo 也使用带有共享 L2 的双核集群 , 因此这个概念对高通来说并不完全陌生 。
Falkor 的 L2 是 512KB、8 路组相联的 , 包含 L1 内容 。 它既是 L1 和片上网络之间的中级缓存 , 也是 L2 缓存的窥探过滤器 。 L2 受 ECC 保护 , 因为它可以包含尚未回写到其他地方的修改数据 。
高通表示 L2 延迟为 15 个周期 , 尽管指针追逐模式显示延迟为 16-17 个周期 。 无论如何 , 这比 Kryo 超过 20 个周期的 L2 延迟有所改善 。 Kryo 和 ARM 的 Cortex A72 将 L2 用作最后一级缓存 , 这使它们面临艰巨的任务:既要保持足够低的延迟以处理 L1 未命中时的良好性能 , 又要有足够的容量使核心免受 DRAM 延迟的影响 。 A72 使用 4MB L2 缓存 , 延迟 21 个周期 , 而 Kryo 在延迟高和 L2 容量低两方面都表现不佳 。
多个交错(即存储体)有助于增加 L2 带宽 。 高通没有指定交错数量 , 但表示每个交错每个周期可以提供 32 字节 。 L2 似乎能够每个周期处理 128B 回写 , 因此它可能至少有四个交错 。 一个复合体中的两个 Falkor 核心一起仅具有 32B / 周期的加载 / 存储带宽 , 因此 L2 有足够的带宽为两个核心提供数据 。 相比之下 , Kryo 和 A72 上的 L2 缓存带宽明显低于其 L1 缓存 。
Falkor 双工使用高通系统总线(QSB)协议与系统接口 。 QSB 是一种专有协议 , 其功能与 ARM 使用的 ACE 协议相同 。 它也可以与英特尔的 IDI 或 AMD 的 Infinity Fabric 协议相比较 。 双工的系统总线接口每个 128B 交错每个方向每个周期提供 32 字节的带宽 。
片上网络高通使用双向分段环形总线连接核心、L3 缓存和 IO 控制器 。 数据传输使用两组双向环 , 流量在两个双向环之间以 128B 缓存行粒度交错 。 总体而言 , Centriq 有四个环 , 覆盖顺时针和逆时针方向的偶数和奇数交错 。 高通的幻灯片显示每个环可以移动 32B / 周期 , 因此环形总线实际上每个方向有 64B / 周期的带宽 。
通过简单的带宽测试 , 双核集群可以访问接近 64GB/s 的 L3 带宽 , 这使高通比 Cortex A72 具有显著的缓存带宽优势 。 来自双核 Falkor 复合体的 L3 带宽类似于 Core i5-6600K 上的 Skylake 核心 。
环形总线客户端包括多达 24 个双核集群、12 个 L3 缓存切片、六个 DDR4 控制器通道、六个处理 32 条 Gen 3 通道的 PCIe 控制器 , 以及各种低速 IO 控制器 。
L3 缓存Centriq 的 L3 缓存切片容量为 5MB , 采用 20 路组相联设计 , 12 个切片使芯片的 L3 总容量达到 60MB 。 46 核的 Centriq 2452 启用了 57.5MB 的 L3 缓存 。 缓存路(ways)可预留用于在不同应用和请求类型间分配 L3 容量 , 这有助于确保服务质量 。
与许多其他多核心共享大型 L3 的设计类似 , 地址通过哈希分布到各个 L3 切片以实现带宽扩展 。 不同于英特尔和 AMD 的设计 , Centriq 的 L3 切片数量与核心数量不匹配 。 然而 , 每个 Centriq L3 切片有两个环形总线端口 , 因此 L3 和 Falkor 双核集群向片上网络提供的总带宽相同 。
L3 延迟较高 , 超过 40 纳秒(即超过 100 个周期) 。 对于拥有 512KB L2 缓存的核心来说 , 这一延迟较为明显 。 带宽可扩展至 500GB/s 以上 , 除了带宽密集型的向量工作负载外 , 这一性能基本足够 。 鉴于 Falkor 本身并不适合向量工作负载 , Centriq 的 L3 带宽显得绰绰有余 。 在中等带宽负载下 , 延迟增加至约 50 纳秒;接近 L3 带宽极限时 , 延迟可达 70-80 纳秒 。 当所有双核集群同时加载数据时 , 竞争会使延迟略超过 90 纳秒 。
Centriq 的 L3 还充当芯片级的一致性点 。 L3 不包含上层缓存(L1/L2)的内容 , 而是通过维护 L2 窥探过滤器来确保一致性 。 这一点与 AMD Zen 或英特尔 Skylake 服务器的 L3 机制类似 。 每个 L3 切片最多可跟踪 32 个未完成的窥探请求 。 同一双核集群内核心之间的缓存一致性操作无需通过环形总线传输 。
核心间延迟测试显示 , 双核集群内的核心对延迟较低 , 但绝对延迟仍然较高 。 测试还表明 , 高通在 Centriq 2452 上通过关闭一对双核集群中的一个核心 , 禁用了两个物理核心 。 这种做法可略微提升性能 , 因为两个核心无需共享 L2 容量和系统总线接口 。
Centriq 通过六个通道支持高达 768GB 的 DDR4 内存 。 内存控制器支持最高 2666 MT/s 的速度 , 理论带宽为 128GB/s 。 内存延迟约为 121.4 纳秒 , 在高带宽负载下延迟控制较差 。 当带宽使用超过 100GB/s 时 , 延迟可能超过 500 纳秒 。 相比之下 , 英特尔在带宽利用率超过 90% 时仍能将延迟控制在 200 纳秒以下 。 尽管如此 , 从绝对值来看 , Centriq 的带宽依然充足 。 与同期的 Arm 服务器竞品(如亚马逊的 Graviton 1)相比 , Centriq 具有巨大的带宽优势 。 此外 , 大容量 L3 缓存相比 Graviton 1 可减少对 DRAM 带宽的需求 。
与英特尔和 AMD 的服务器处理器不同 , Centriq 不支持多插槽配置 , 这使其服务器核心数上限为 48 核 , 而 AMD Zen 1 和英特尔 Skylake 可通过多插槽进一步扩展 。 高通不追求多插槽设计的决策是合理的 , 因为跨插槽连接需要巨大的带宽和额外的互连工作 。 但这也使其无法满足需要超过百核虚拟机和 TB 级内存的专业云应用场景 。 仅 32 条 PCIe 通道也限制了 Centriq 搭载大量加速器的能力 —— 即使是同期的高端工作站也拥有更多 PCIe 通道 。
因此 , Centriq 的系统架构旨在应对主流云应用 , 而非试图覆盖英特尔的全部市场 。 通过不涉足所有专业应用 , 高通的数据中心业务能够避免分散精力 , 专注于为常见云场景提供最佳解决方案 。 对于这些用例 , 保留 32 条 PCIe 通道并集成 USB、SATA 等传统南桥功能可能降低平台成本 。 尽管 Centriq 的互连性能不及英特尔 , 但其表现远超 Graviton 1 。
性能表现在 SPEC CPU2017 测试中 , Falkor 核心轻松超越 Arm 的 Cortex A72 , 整数套件领先 21.6% , 浮点套件领先 53.4% 。 但在采用更先进工艺节点的后续 Arm 产品面前 , 其性能稍显落后 。
在 SPEC CPU2017 的整数工作负载中 , Falkor 在内存受限的任务(如 505.mcf 和 502.gcc)中表现最佳 。 在 503.bwaves 和 507.cactuBSSN 等多个浮点子测试中 , Falkor 取得了巨大领先 , 这使其在浮点套件中的总体优势显著扩大 。
从每时钟周期指令数(IPC)来看 , Falkor 在 538.imagick 等缓存友好型工作负载中能充分发挥性能 。 但并非所有高 IPC 工作负载都让 Falkor 占据明显优势:在 SPEC CPU2017 整数套件的 548.exchange2 和 525.x264 两项高 IPC 测试中 , Cortex A72 仅略微落后 。 这也提醒我们 , Falkor 并非真正的四发射核心 。
作为对比 , 本文加入了 Skylake 的 IPC 数据(这是一款无重命名器槽位限制的四发射核心) 。 在较简单的工作负载中 , Skylake 的 IPC 可达 3 以上 , 而 Falkor 则无法做到 。
四核性能对比在 7-Zip 测试中(设置为使用 8 线程并固定到 4 个核心) , Falkor 轻松领先 Cortex A72 。 每个集群使用一个核心与在两个集群中加载两个核心的性能提升微乎其微 。
与 7-Zip 不同 , libx264 是一个高度向量化的工作负载 。 Falkor 的向量处理能力较弱 , 但 Cortex A72 亦然 。 使用四个双核集群提供的额外 L2 容量仅带来轻微性能提升 , 但 Falkor 仍毫无悬念地击败 A72 。
总结高通的 Kryo 移动核心以高核心吞吐量与欠佳的内存子系统为特点 , 而 Falkor 在进军服务器市场时采取了不同的策略 。 其核心流水线在许多方面相比 Kryo 有所简化:执行资源更少、加载 / 存储带宽更低、对 128 位向量的处理更弱 。 其 “3+1” 重命名器更多是作为分支融合的替代方案 , 而非使 Falkor 成为真正的四发射核心 , 这是相较 Kryo 的又一退步 。 尽管 Falkor 在乱序资源释放等方面有所改进 , 但是缺乏 Kryo 的原始吞吐量 。
比较起来 , Falkor 拥有更强的内存子系统:指令缓存容量是 Kryo 的两倍以上 , 加载 / 存储单元可跟踪更多未完成访问 , 并实现更快的存储转发 , 即使是部分加载 / 存储重叠等复杂场景也能良好处理 。 核心之外 , Falkor 的 L2 延迟比 Kryo 低得多 , L2 未命中时可通过高带宽互连访问 60MB 的 L3 缓存 。 高通并未堆砌执行单元和核心宽度 , 而是致力于为 Falkor 提供充足的数据供给 。
Falkor 的目标 likely 是在多种工作负载中提供足够的性能 , 而非在少数简单任务中追求极致表现 。 精简核心流水线可能也是为了实现高通的密度目标:2017 年集成 48 核堪称壮举 , 这使高通在单插槽服务器中拥有超越英特尔和 AMD 的核心数优势 , 且在 120W 功耗范围内实现这一点更为令人印象深刻 。 Kryo 或许因架构 “过于臃肿” 而不适合这一角色 —— 宽流水线和完整的 128 位向量执行单元耗电较高 , 数据传输也会显著消耗功率 , 而 Kryo 欠佳的缓存容量更雪上加霜 。
Falkor 最终成为 2017 年 Arm 服务器市场的有力竞争者 。 Centriq 全面碾压亚马逊的 Graviton 1(后者是主流云厂商推出的首款 Arm 平台) 。 尽管相比 Kryo 精简了核心 , 但 Falkor 仍比 A72 强大得多 , 结合更强的内存子系统 , 既能实现单核性能超越 A72 , 又能在芯片上集成更多核心 。
但仅击败 Graviton 1 远远不够 。 2010 年代后期的 Arm 服务器市场环境并不友好 , 多家厂商尝试推出密度优化的 Arm 服务器 CPU 却纷纷折戟 , 包括 AMD 的 “Seattle”、Ampere 的 eMAG 8180 和 Cavium 的 ThunderX2 。 x86-64 架构的强势竞争与 Arm 软件生态的不成熟 , 使得这些早期 Arm 服务器芯片难以打开市场 。 例如 , 对比 Skylake-X , Falkor 的核心规模更?。 籆entriq 的内存子系统虽比 Kryo 或 A72 更强 , 但 L2 容量更少且 L3 延迟更高 。
高通数据中心技术部门在开发 Centriq 服务器 SoC 时无疑取得了诸多成就:在单芯片上集成数十个核心并实现数百 GB/s 的数据传输绝非易事 , 这与移动 SoC 设计截然不同 。 但瞄准云计算细分市场 , 挑战英特尔、AMD 等经验丰富的玩家依然是困难重重的 。 直到 2020 年后 Ampere Altra 发布 , Arm 才真正在服务器市场站稳脚跟 —— 彼时 Arm 更强的 Neoverse N1 核心和台积电 7nm FinFET 工艺已让 Falkor 相形见绌 。 高通曾计划推出 Falkor 的继任者 “Saphira” 核心 , 但据本文所知 , 该核心并未落地 。
不过 , 高通正试图重返服务器市?。 浩湫冀蛏程毓?AI 公司 HUMAIN 供应 “数据中心 CPU 和 AI 解决方案” , 英伟达的 NVLink Fusion 公告也将高通列为可通过 NVLink 集成 GPU 的服务器 CPU 供应商 。
*声明:本文系原作者创作 。 文章内容系其个人观点 , 我方转载仅为分享与讨论 , 不代表我方赞成或认同 , 如有异议 , 请联系后台 。
想要获取半导体产业的前沿洞见、技术速递、趋势解析 , 关注我们!
推荐阅读
- 国产手机这些新技术,让我感觉iPhone17真的不香了
- 老人机≠低配机!讲个道理,你真的低估老年人的用机习惯
- 看似无害的提问偷走RAG记忆,IKEA:隐蔽高效数据提取攻击新范式
- 轻薄全能旗舰vivo S30,这个夏天最酷的科技潮品
- 即将发布的5款新机,每一款都很有看点!你最期待哪一款?
- vivo S30 Pro mini影像深度测评:氛围感直出的艺术
- 原来 2124 元也能有提升幸福感的好手机
- 下一次品牌告诉你‘这是福利’时,请先问:进步了谁的利益?
- EPEL 仓库详解:Linux 系统上的安装与使用指南
- 预售进行时!vivo S30系列选购指南:哪款配色最适合你的style
