找回密码
立即注册
搜索
发回帖 发新帖

6477

积分

0

好友

817

主题
发表于 前天 22:46 | 查看: 23| 回复: 0

在 Hot Chips 2026 上,IBM 展示了一款采用 2nm 工艺的双架构处理器。它拥有 11 个高性能核心,目标运行频率超过 5.7GHz。最特别的地方在于:同一个 CPU 核心能够原生执行 Arm AArch64 和 IBM Z 两套指令集。

IBM双ISA处理器整体架构图

IBM 双 ISA 处理器采用 2nm 工艺,同一颗核心支持 Arm AArch64 与 IBM Z 指令集。

通常情况下,不同 ISA 意味着不同的处理器核心设计。例如,一颗 SoC 可以同时集成 Arm 和 RISC-V 核心,但它们仍然是两套独立的执行硬件。IBM 这次选择了另一条路线:让两套 ISA 共享同一颗核心内部的大量微架构资源。

这意味着,CPU 的指令解码、寄存器管理、执行流水线甚至地址翻译,都需要重新考虑。

01|两套 ISA,究竟差在哪里?

ISA(指令集架构)规定了软件与处理器之间的接口,包括指令编码、寄存器、数据类型、内存访问以及异常处理等。

Arm AArch64 采用固定长度的 32 位指令编码,而 IBM Z 使用长度可变的指令格式。两者的通用寄存器组织、条件码和异常模型也存在明显区别。

Arm AArch64实现细节与架构对比幻灯片

Arm AArch64 与 IBM Z 在指令编码和架构状态上存在明显差异。

但 ISA 不同,不意味着底层执行硬件必须完全不同。

现代高性能 CPU 通常会将架构指令解码为内部操作,再交给乱序执行引擎处理。无论软件使用哪种 ISA,最终都可能涉及整数加法、乘法、加载、存储和分支等基本操作。

例如,Arm 和 IBM Z 各自都有整数加法指令。虽然指令编码和寄存器命名不同,但完成加法所需要的 ALU 可以共享。

这为双 ISA 核心提供了基础:前端识别不同指令,后端尽可能复用执行资源。

不过,真正困难的地方在于,两套 ISA 除了指令编码不同,还定义了不同的架构状态和执行语义。

02|两套 ISA 如何共享一套执行硬件?

IBM 没有从零设计一颗全新的 CPU,而是以现有 IBM Z 高性能核心为基础,增加对 Arm AArch64 的原生支持。

在 Hot Chips 展示的设计中,分支预测器沿用 Telum II 的结构,缓存、物理寄存器文件和大量执行数据路径也得到复用。改动主要集中在指令解码、部分寄存器映射、向量执行和地址翻译等位置。

IBM双ISA CPU核心微架构变更框图

IBM 双 ISA 核心复用大量现有微架构资源,并增加 Arm 指令支持。

首先是指令解码。IBM Z 指令长度为 16 至 48 位,而 AArch64 使用固定 32 位指令。IBM 保留了部分共享的解码流水线,但为两套 ISA 分别构建实际的指令解码器。

为了实现 AArch64 支持,IBM 还利用 Arm 提供的机器可读 XML 架构描述,自动生成相关解码逻辑。整个核心中,指令解码也是支持新 ISA 所带来的主要新增硬件开销之一。

其次是寄存器重命名。IBM 复用了原有物理寄存器资源,并调整通用寄存器重命名结构,以适应 AArch64 的寄存器组织方式。这样,两套 ISA 可以使用同一套乱序执行基础设施,而不必分别配置完整的物理寄存器文件。

执行后端的共享程度更高。整数运算、Load/Store 等主要数据路径能够复用,但 AArch64 支持的 SVE 向量扩展,以及 FP16、BF16 等数据格式,仍然需要新增相应硬件。

IBM 的设计思路很清晰:保留昂贵的大型微架构结构,在 ISA 差异无法被现有硬件吸收的位置增加专用逻辑。

03|连 TLB 都能共享,地址翻译怎么办?

指令执行可以复用 ALU,但内存系统的问题更复杂。

IBM Z 和 Arm 不仅指令格式不同,虚拟地址翻译机制、页表结构以及内存访问语义也存在差异。

IBM 选择保留原有 TLB,让两套 ISA 共享地址翻译缓存,同时增加适用于 AArch64 的页表遍历机制。

这意味着,TLB 可以继续承担缓存地址翻译结果的职责,但生成这些结果的 Page Walker 必须理解不同 ISA 的页表格式。

另一个问题是字节序。IBM Z 主要采用大端模式,而常见 AArch64 软件环境采用小端模式。IBM 需要在共享数据路径的同时,正确处理不同字节序下的数据访问。

值得注意的是,IBM Z 原有的强内存排序特性也被保留下来。根据核心设计团队的技术访谈,Arm 侧可以利用相应的内存排序支持,而不必重新设计整套内存执行机制。

04|为什么 IBM 不直接增加 Arm 核心?

如果只是为了运行 Arm 软件,最容易理解的方案是在芯片上增加一组独立的 Arm 核心。

但 IBM 希望把 Arm 软件生态引入现有大型机平台,同时保留 IBM Z 在可靠性、安全、加密和大规模事务处理方面的硬件能力。

IBM Z与Arm通过Linux KVM共存的系统架构图

双 ISA 核心让 Arm 软件生态能够利用 IBM Z 平台的处理器与系统资源。

双 ISA 核心提供了另一种选择:Arm 软件和 IBM Z 软件可以在同一套处理器资源上原生运行。IBM 计划通过虚拟化支持 Arm 原生 Linux 环境,与现有 z/OS 及 IBM Z Linux 工作负载共存。

这颗处理器还包含 11 个高性能核心、片上 DPU、AI 推理加速器和大规模缓存架构。双 ISA 设计使 Arm 软件有机会直接利用这些系统资源。

当然,共享硬件也需要付出代价。额外的解码器、向量执行逻辑和地址翻译支持都会增加设计与验证复杂度。目前还没有足够的公开数据,能够证明双 ISA 核心在面积或能效上一定优于分别配置两种核心。

但从微架构角度看,IBM 已经证明了一件事:两套差异明显的 ISA,可以通过共享大量核心内部资源,在同一颗高性能 CPU 核心中实现原生执行。

过去,ISA 往往是处理器核心设计的重要边界。IBM 这次展示的方案,让这个边界有了新的设计空间。

对于 CPU 架构工程师而言,值得研究的是如何在保留现有高性能流水线的基础上,通过有限的新增硬件支持另一套 ISA,以及如何判断哪些结构能够复用、哪些必须重新设计。对处理器微架构感兴趣的话,云栈社区也有不少同行在讨论这类底层设计的取舍。




上一篇:OpenAI未来短片引猜测,Astra与Betelgeuse传闻可信度存疑
下一篇:Ceva NeuPro Ultra数据路径设计解析:NPU如何优化数据搬运与AI推理
您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-11-2 07:45 , Processed in 0.065644 second(s), 40 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表