摘要:指令集架构 (ISA) 定义了软件接口,例如中央处理器 (CPU) 可通过该接口进行控制。与早期没有定义标准 ISA 的计算机系统不同,随着时间的推移,拥有标准 ISA 的兼容性和可移植性优势变得显而易见。但当然,标准最好的部分是标准数量众多,因此每个 CPU
指令集架构 (ISA) 定义了软件接口,例如中央处理器 (CPU) 可通过该接口进行控制。与早期没有定义标准 ISA 的计算机系统不同,随着时间的推移,拥有标准 ISA 的兼容性和可移植性优势变得显而易见。但当然,标准最好的部分是标准数量众多,因此每个 CPU 制造商都制定了自己的标准。
在整个 20 世纪 80 年代和 90 年代,随着计算机行业在每种类型的应用程序中都围绕几个主要 ISA 进行整合,主流 ISA 的数量急剧下降。英特尔的 x86 在台式机和小型服务器上胜出,而 ARM 在低功耗和便携式设备中宣告胜利,而对于 Big Iron,你总是拥有 IBM 的 Power ISA。自我们上次在 2019 年报道 ISA 之战以来,很多事情都发生了变化,包括苹果通过 Apple Silicon 将其台式机系统从 x86 转移到 ARM,最后 MIPS 以 LoongArch 的形式迎来了来世。
与此同时,在上文提到的 ISA 之战文章中,RISC-V 被提及了六年,但这个 ISA 似乎并没有像一些人预期的那样引起轰动。这引发了人们对 RISC-V 和其他 ISA 未来发展的期望,以及在 CPU 性能和微架构等方面,拥有不同的 ISA 有多大意义的疑问。
RISC 无处不在
与过去 CPU 微架构仍处于不断变化中不同,如今它们似乎都围绕着一组类似的功能进行融合,包括无序执行、预取、超标量并行、推测执行、分支预测和多核设计。如今,大多数性能都是通过解决特定瓶颈和针对特定使用场景进行优化而获得的,这导致了诸如同步多线程 (SMT) 和各种流水线和指令解码器设计等。
如今的 CPU 几乎都是过去所谓的 RISC(精简指令集计算机)架构,具有相对较少的经过高度优化的指令。使用寄存器重命名等方法,CPU 可以处理多个同时执行的线程,这对于与 ISA 通信的软件端来说是完全不可见的。对于软件来说,只有一个寄存器文件,除非出现某些情况,例如推测执行出现问题,否则每个执行线程只知道自己的上下文,而不知道其他内容。
那么,如果 CPU 微架构此时已经基本合并,那么 ISA 会有什么区别呢?
指令集的挑剔
在 ISA 之争中,目前双方的争论主要集中在延迟槽和压缩指令的优缺点、设置状态标志与检查分支结果等话题上。很难以同类方式比较 ISA,因为商用 ARMv8 CPU 的底层微架构与类似的 x86_64 或 RV64I 或 RV64IMAC CPU 不同。RISC-V 的高度模块化特性也增加了显著的复杂性。
如果我们看看 RISC-V 目前在商业环境中的使用情况,它主要用作简单的嵌入式控制器,这种模块化是一种优势,而与无数其他可能的 RISC-V 扩展组合的兼容性则不成问题。在这里,使用 RISC-V 比内部专有 ISA 具有明显的优势,因为将其外包给开放标准项目可以节省成本。然而,这也是该 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 传统,这会让 x86_64 比 RISC-V 差一倍或好一倍,这取决于你问谁。
与此同时,一位在 ARM 方面经验丰富的工程师不久前撰写了一篇长篇论文,论述了这三种 ISA 的优缺点。他们的结论是 RISC-V “极简主义到了极致”,指令重叠,没有条件代码或标志,而是需要比较和分支指令。后一点会导致许多妥协,这也是许多人认为 RISC-V 存在问题的主要原因之一。
总而言之,与其他 ISA 已经建立的领域相比,RISC-V 并没有明显的优势,但它的优势似乎主要在于其极端的模块化和缺乏许可要求,这被视为令人信服的论据,这不应该阻止人们时不时地享受一场精彩的论战。
中国视角
尽管除中国以外的所有地区都已基本围绕上述三种 ISA 进行整合,但总有例外。与俄罗斯命运多舛的超大指令字Elbrus架构不同,中国在 CPU 方面的努力取得了更多成果。从龙芯CPU 开始,中国自主研发的微处理器架构开始真正成型。
最初这些是与 MIPS 兼容的 CPU。但从 2021 年的 3A5000 开始,中国 CPU 开始使用新的 LoongArch ISA。在有关此 ISA 的Linux 内核文档中,它被描述为“有点像 MIPS 或 RISC-V”,它具有三个变体,范围从精简的 32 位版本 (LA32R) 和标准 32 位 (LA32S) 到 64 位版本 (LA64)。在当前的 LS3A6000 CPU 中,有 16 个支持 SMT 的内核。在评论中,这些芯片被证明正在迅速赶上现代 x86_64 CPU,包括超频方面。
当然,由于这些都是仅在中国推出的硬件,很少有西方评论家对 LS3A6000 或其即将推出的继任者 LS3A7000 进行过独立测试。
除了 LoongArch,其他中国公司也在自己的微处理器中使用 RISC-V,例如专注于人工智能的公司SpacemiT ,其产品还包括更多通用处理器。这包括MuseBook笔记本电脑中使用的 K1 八核 CPU。与当今所有基于 RISC-V 的商用内核一样,这款处理器的速度并不快,即使是 SiFive Premier P550 SoC 也被 Raspberry Pi 4 已经相当老旧的基于 ARM 的 SoC彻底击败。
考虑到所有这些,如果中国嵌入式以外的 ISA 领域主要以 LoongArch、大量 ARM、一些 x86_64 和少量 RISC-V 为特色,那就不足为奇了。
一切都与 IP 有关
通过将 Apple Silicon 与其他基于 ARMv8 的 CPU 进行对比,可以清楚地看到 ISA 和微架构之间的区别。虽然它们都支持相同 ARMv8 ISA 的版本,但神奇之处在于集成到芯片中的知识产权(IP) 块。这些包括内存控制器、PCIe SerDes 块和集成显卡 (iGPU),以及加密和安全功能。除非您是拥有自己的 GPU 解决方案的 Apple 或 Intel,否则您将获得 iGPU 块以及来自 IP 供应商的其他 IP 块的许可。
这些 IP 模块的优点是能够使用具有已知性能特征的现成功能,但它们也是微处理器设计的大部分成本所在。如果您像 Apple 或 Qualcomm 那样反复重复使用相同的模块,那么从头开发此类功能可以收回成本。对于一家初创硬件公司来说,这是最大的投资之一,这就是为什么他们倾向于从 Arm 获得完全可制造的设计的许可。
ISA 的实际许可成本实际上是一个舍入误差,而能够利用现有软件和工具的好处才是主要驱动因素。这就是为什么像 LoongArch 这样的新 ISA 从长远来看很可能对现有 ISA 构成真正的挑战,因为它有机会在一个需求有保证的非常大的市场中发展。
多种选择
同时,Power ISA也可供任何人免费使用,无需许可费用;唯一的主要要求是遵守 Power ISA。OpenPOWER 基金会现在也是Linux 基金会的一部分,其一系列 IBM Power 核心都是开源的。其中包括基于为 XBox 360 和 Playstation 3 的 Cell 处理器供电的 A2I 核心的A2O 核心,以及基于更新的 Power ISA 3.0 的Microwatt 参考设计。
无论您喜欢什么,无论您只是在进行业余爱好还是商业项目,ISA 领域似乎都有很多多样性可供选择。虽然选择自己喜欢的并喜欢它是人之常情,但每种 ISA 都有其可取之处。无论是更好的教学工具,更适合高度定制的嵌入式设计,还是仅仅因为它可以轻松运行数十年的软件,它们都有自己的一席之地。
关注全球半导体产业动向与趋势
*免责声明:本文由作者原创。文章内容系作者个人观点,半导体行业观察转载仅为了传达一种不同的观点,不代表半导体行业观察对该观点赞同或支持,如果有任何异议,欢迎联系半导体行业观察。
今天是《半导体行业观察》为您分享的第4086期内容,欢迎关注。
『半导体第一垂直媒体』
来源:半导体行业观察一点号