指令集架构(ISA)定义了软件接口,像中央处理器(CPU)可通过这个接口被控制。早期计算机系统没有标准 ISA,随着时间推移,有标准 ISA 的系统在兼容性和可移植性上的优势日益凸显。不过,标准众多,每个 CPU 制造商都制定了自己的标准。
20 世纪 80 年代到 90 年代,计算机行业在各类应用程序中逐渐围绕几个主要 ISA 整合,主流 ISA 数量大幅下降。英特尔的 x86 在台式机和小型服务器领域胜出,ARM 在低功耗和便携式设备中占据优势,而大型机方面,IBM 的 Power ISA 一直有一席之地。自 2019 年报道 ISA 之争以来,变化颇多,比如苹果通过 Apple Silicon 将台式机系统从 x86 转向 ARM,MIPS 以 LoongArch 的形式迎来新发展。
RISC - V 已被提及六年,这引发了对 RISC - V 和其他 ISA 未来发展的期待,也让人思考在 CPU 性能和微架构等方面,不同 ISA 的意义。
如今的 CPU 微架构大多围绕一组相似功能融合,如无序执行、预取、超标量并行、推测执行、分支预测和多核设计。多数性能通过解决特定瓶颈、针对特定使用场景优化获得,产生了同步多线程(SMT)、各种流水线和指令解码器设计等。如今的 CPU 几乎都是过去所说的 RISC(精简指令集计算机)架构,指令相对少但高度优化。通过寄存器重命名等方法,CPU 能处理多个同时执行的线程,这对软件端不可见,软件通常只看到一个寄存器文件,除非推测执行出问题,否则每个执行线程只了解自身上下文。
既然 CPU 微架构已基本融合,那 ISA 还有什么区别呢?在 ISA 之争中,目前争论集中在延迟槽和压缩指令的优缺点、设置状态标志与检查分支结果等话题。由于商用 ARMv8 CPU、x86_64、RV64I 或 RV64IMAC CPU 底层微架构不同,难以同类比较 ISA,RISC - V 的高度模块化也增加了复杂性。
从商业应用看,RISC - V 主要用作简单嵌入式控制器,模块化是优势,与其他 RISC - V 扩展组合的兼容性也不成问题,相比内部专有 ISA,外包给开放标准项目能节省成本。但这也是其弱点,缺乏像 ARMv8 和 x86_64 那样固定的 ISA,使支持 Linux 内核等任务变得复杂。
谷歌因支持复杂性不断增加,已从 Android 中撤回对 RISC - V 的初始支持。因为每个基于 RISC - V 的 CPU 只需支持基本整数指令集,整数乘法(M)、原子(A)、位操作(B)等功能可选,所以针对 RISC - V 的软件都要明确测试所需指令和功能,否则就得用后备方案。
人们对 RISC - V 缺乏整数溢出陷阱和进位指令也有争议。在压缩指令问题上,ARMv8 阵营认为没必要,RISC - V 阵营则支持,x86_64 因 CISC 传统,指令长度是 RISC - V 的两倍,至于优劣,看法不一。
有 ARM 经验的工程师曾发表论文论述三种 ISA 的优缺点,认为 RISC - V “极简主义到极致”,指令重叠,没有条件代码或标志,需比较和分支指令,这导致很多妥协,是许多人认为 RISC - V 有问题的主要原因之一。总体而言,与其他已成熟的 ISA 相比,RISC - V 优势不明显,其优势主要在极端模块化和无许可要求,但这并不妨碍人们对其展开讨论。除中国外,其他地区基本围绕上述三种 ISA 整合,但也有例外。
中国在 CPU 研发方面也取得一定成果。从龙芯 CPU 开始,自主研发的微处理器架构逐渐成型。最初是与 MIPS 兼容的 CPU,从 2021 年的 3A5000 开始,采用新的 LoongArch ISA。Linux 内核文档将其描述为 “有点像 MIPS 或 RISC - V”,有精简 32 位(LA32R)、标准 32 位(LA32S)和 64 位(LA64)三个变体。当前的 LS3A6000 CPU 有 16 个支持 SMT 的内核。
除 LoongArch,一些中国公司也在微处理器中使用 RISC - V,如专注人工智能的公司,其产品包括通用处理器,像 MuseBook 笔记本电脑中使用的 K1 八核 CPU。但和当下所有基于 RISC - V 的商用内核一样,这款处理器速度不快,SiFive Premier P550 SoC 甚至被树莓派 4 老旧的基于 ARM 的 SoC 击败。RISC - V 在中国最成功的应用可能是乐鑫 ESP32 - C 系列 MCU 中的内核。综合来看,在中国嵌入式领域外,ISA 领域主要有 LoongArch、大量 ARM、一些 x86_64 和少量 RISC - V,这并不奇怪。
对比 Apple Silicon 与其他基于 ARMv8 的 CPU,能清晰看出 ISA 和微架构的区别。它们虽都支持 ARMv8 ISA,但芯片中的知识产权(IP)块才是关键,包括内存控制器、PCIe SerDes 块、集成显卡(iGPU)以及加密和安全功能。除非像苹果或英特尔有自己的 GPU 解决方案,否则需从 IP 供应商处许可 iGPU 块及其他 IP 块。这些 IP 模块能使用现成且性能已知的功能,但也是微处理器设计的主要成本所在。像苹果或高通反复使用相同模块,可收回开发成本。对初创硬件公司,这是一大笔投资,所以常从 Arm 获得可制造设计的许可。ISA 实际许可成本相对较低,能利用现有软件和工具才是主要驱动因素。这也是像 LoongArch 这样的新 ISA 从长远看可能挑战现有 ISA 的原因,因为它有机会在大市场中发展。
Power ISA 可供任何人免费使用,只需遵守相关规定。OpenPOWER 基金会现已成为 Linux 基金会一部分,一系列 IBM Power 核心开源,包括基于为 XBox 360 和 Playstation 3 的 Cell 处理器供电的 A2I 核心的 A2O 核心,以及基于更新的 Power ISA 3.0 的 Microwatt 参考设计。无论用于业余爱好还是商业项目,ISA 领域都有丰富多样的选择。每种 ISA 都有其优点,或是更好的教学工具,或是更适合高度定制的嵌入式设计,亦或是能轻松运行多年的软件,它们都在各自领域有一席之地。
本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。