简介:在 AI 与高性能计算需求推动下,Arm 架构正加速进入数据中心核心场景。本文从刚发布的新一代 Arm 服务器处理器出发,系统拆解 2D 横向 Chiplet 与 3D 纵向 Chiplet 两条技术路线,重点分析 Die-to-Die 互连、一致性协议、内存子系统与缓存架构等关键设计,帮助开发者与基础架构团队理解多 Die 时代 Arm 服务器 CPU 的演进逻辑与选型依据。
在人工智能训练与推理、大规模分布式存储、云原生计算等负载推动下,数据中心对 CPU 的要求已经不再是单纯的“核心数增加”,而是同时追求更高的内存带宽、更低的访问延迟、更强的 I/O 扩展能力以及更严格的能效边界。
过去几年,Arm 架构在服务器市场的渗透明显加快。一方面,基于 Arm 指令集的处理器在核心密度与功耗控制上表现出天然优势;另一方面,云厂商与大型互联网团队越来越倾向于针对自身业务特征定制算力底座,Arm 提供了更灵活的授权与实现空间。
但与此同时,先进制程的单片大 Die 设计正面临越来越大的压力:
因此,Chiplet 与多 Die 集成正从一种“可选方案”变为数据中心 CPU 的主流演进方向。其核心思想是:将一个大而全的单片 SoC 拆分为多个功能更聚焦的小芯片,分别选择合适工艺制造,再通过高密度封装与片间互连重新组合为完整系统。
从系统角度看,Chiplet 带来的价值并不只是“把芯片做小”,而是重构了算力扩展的单元。传统上,计算扩展以单 Socket 或单节点为粒度;当 Die-to-Die 互连带宽足够高、一致性机制足够完善时,一个封装内的多个 Die 可以被软件视为一个更大型的 NUMA 域,甚至接近单一内存一致域。
在最近一届 Hot Chips 会议上,业界展示了两种 Arm 服务器处理器的 Chiplet 实现方式。它们分别代表了“横向扩展”与“纵向堆叠”两种思路。
第一种路线采用双 Chiplet 横向布局。单个 Chiplet 基于 3nm 级工艺制造,集成超过 500 亿晶体管,两颗 Chiplet 通过位于 Die 中央的 Die-to-Die Subsystem 完成互连。完整封装后,单 Socket 可提供超过 130 个物理核心。
该方案的核心设计不是简单地把两个 Die 并列封装,而是在互连层面引入了相干网格网络。其 Mesh 拓扑规模达到 8 行 × 9 列,分布式系统级缓存总量达到 128MB,并支持 CHI 系列一致性协议。通过标准化的片间互连接口,Die 与 Die 之间可以维持高带宽、低延迟的缓存与内存一致性通信。
这种横向扩展方式的主要优势包括:
不过,横向 2D 方案也面临挑战。例如,跨 Die 访问虽然通过高带宽互连得到缓解,但物理距离和协议跳数仍然会带来额外延迟;当核心数继续提升时,系统级缓存的索引与一致性流量也需要重新设计,否则容易成为瓶颈。
第二种路线采用纵向堆叠方式,将不同功能的 Chiplet 在垂直方向上集成。这种方案通常把计算 Die 与互连、缓存或 I/O Die 分离,使用混合键合、微凸点或硅通孔等技术实现层间连接。
纵向堆叠的最大价值在于“异构工艺集成”。计算核心可以采用最先进的逻辑工艺,而互连、SerDes、内存控制器、模拟电路等可以放在成本更优或特性更匹配的工艺节点上。同时,由于垂直互连路径更短,单位能耗下的数据搬运效率更高。
在内存子系统上,纵向方案有机会将高带宽缓存或内存控制器放在更靠近计算核心的位置,从而缩短数据路径、提升有效带宽。对于数据库、实时分析、内存缓存类业务,这种低延迟与高带宽特性往往比单纯的核心数量更重要。
当然,纵向堆叠对封装、热设计、供电与测试都提出更高要求。多层堆叠下的热密度管理尤其关键,因为计算层产生的热量必须穿过其他层或通过更复杂的散热路径导出。
无论是横向还是纵向 Chiplet,真正决定方案可行性的并不是“能不能拼起来”,而是“拼起来之后是否像一个系统”。
Die-to-Die 互连需要同时满足高带宽、低延迟、低功耗与高可靠性。通常,片间互连会采用并行 PHY 与差分信号相结合的方式,在数毫米范围内提供远高于传统 PCB 走线的信号密度。
对于服务器 CPU,片间互连不能只是“点对点数据通路”,还必须承载一致性协议报文、中断、地址翻译同步、缓存状态交换等更复杂的流量类型。因此,互连层需要与一致性协议层紧密配合。
在多 Die 系统中,一个关键问题是:跨 Die 的缓存访问是否保持一致性。
如果仅通过软件维护一致性,编程模型会变得非常复杂;如果一致性域仅限单 Die 内部,则跨 Die 访问会退化为类似多 Socket 的行为,延迟与软件开销增加。
因此,现代 Arm 服务器 CPU 倾向于将多个 Die 纳入同一个分布式一致性域。CHI 协议在此扮演重要角色。它允许缓存状态、完成响应、数据响应与监听请求在不同节点之间高效传输。配合分布式系统级缓存,可以避免大量请求直接落到内存控制器,从而降低访问延迟。
从软件视角看,一个封装内的多个 Die 如果处于同一一致性域,表现为一个拥有较多核心与较大缓存层次的系统。这种抽象对操作系统与编排系统更友好。
在传统单片设计中,内存控制器与 I/O 控制器通常分布于 Die 四周,以利于引脚扇出。而在 Chiplet 架构下,内存与 I/O 可以独立成 Die,也可以继续与计算 Die 集成。
将内存控制器保留在计算 Die 上,能够减少跨 Die 访问路径,但会占用先进工艺面积;将内存控制器放到独立 Die 上,则可以用更经济工艺实现更多通道,同时让计算 Die 更专注于核心与缓存。两种策略没有绝对优劣,取决于目标负载是延迟敏感还是容量敏感。
Chiplet 带来的最大变化之一,是单 Socket 内 NUMA 拓扑可能重新出现。虽然理想情况下一个封装是一个一致域,但随着核心数量提升,跨 Die 访问延迟与带宽差异仍可能被操作系统感知。
对于开发者而言,以下几点值得关注:
线程与内存亲和性更加重要。 即使 CPU 在逻辑上提供统一内存视图,访问远端 Die 的内存仍然可能更慢。合理使用 NUMA API、内存绑定与任务绑定,有助于降低波动。
共享数据布局需要重新评估。 在设计并发数据时,可以对比数据分散放置与集中在单一 Die 内存区域两种方案的性能差异。例如,在 C 语言中通过 numa_alloc_onnode 或线程绑定来约束数据位置:
// 仅为示意:根据 NUMA 节点分配内存void *buf = numa_alloc_onnode(size, node_id);
在高核心数 Chiplet 平台上,将共享数据结构尽量放在被主要访问线程所在的 NUMA 节点,通常能获得更稳定的延迟表现。
当 Chiplet 方案成熟后,同一个封装中可以集成的不只是同构计算 Die,还可以包括:
这些模块可以使用不同工艺与不同功耗预算,只要 Die-to-Die 互连能够提供一致或非一致访问机制。对于云厂商而言,这意味着有机会围绕自身业务构建更平衡的算力底座,而不是被迫在一个通用 CPU 上运行所有任务。
Arm 服务器 CPU 的 Chiplet 化并不是一次简单的封装升级,而是对算力、内存、互连与一致性的系统级重构。横向 2D 方案以标准化片间互连为核心,追求核心数量与 I/O 扩展;纵向 3D 方案以异构工艺与低互连距离为核心,追求能效与内存性能。
两种路线在未来很可能走向融合:既包含水平扩展的高核心密度,也在关键路径上引入垂直堆叠的缓存与互连。更重要的是,当 Die-to-Die 接口逐步标准化后,数据中心 CPU 的设计将不再依赖单一厂商的单片能力,而是转向更开放的 Chiplet 组合方式。
对于基础架构与软件开发团队而言,理解多 Die 系统的 NUMA 特性、一致性行为与内存访问差异,将比单纯关注“核心数量”更能指导实际业务优化。在机架内,算力单元正在从“单颗大芯片”向“多 Die 协同的封装系统”演进,而应用对硬件拓扑的感知与利用能力,也会成为性能竞争力的重要组成部分。