ARM vs. RISC-V vs. x86 简单指南
简介
我们一直在谈论 树莓派 5 当然是在 PiCockpit。前几天,我发现了一个关于 Raspberry Pi 5 的讨论,主要集中在 Pi 的 ARM 架构以及该架构与 RISC-V 架构的比较上。多年来,人们一直在谈论 Raspberry Pi 与 x86 的兼容性。但 RISC-V Pi 又如何呢?
这一点尤其有趣,因为树莓派是 RISC-V 国际.
事实上,Arduino 也是如此。
那么 RISC-V 架构芯片在 Raspberry Pis 上的应用前景广阔.不过,我不会对 x86 Raspberry Pi 抱有太大希望。
毕竟 在 Raspberry Pi 最近发布的讨论中戈登-霍林沃思说:"人们会说:'你能做到吗? 你能制作 x86 Raspberry Pi 吗?'这就像,'哦,上帝,这会是一个很大的工作。你可以,但是......"
因此,我认为是时候回顾一下 RISC-V、ARM 和 x86 架构之间的一些主要异同点了。我将介绍它们的历史、优点和缺点,以及它们之间的区别。
最后,你会明白为什么制作 x86 Raspberry Pi 要花费这么多功夫,但制作 RISC-V Raspberry Pi 也不是不可能。
概述
RISC-V | ARM | x86 | |
---|---|---|---|
起源 | RISC-V 国际 | Arm Ltd. | 英特尔和 AMD |
指令集 | RISC(精简指令集计算) | RISC(精简指令集计算) | CISC(复杂指令集计算) |
字节顺序 | 通常为小二进制(用户可配置) | 通常为双电层(用户可配置) | 小二进制 |
应用 | 嵌入式系统、物联网设备、定制解决方案 | 移动设备、嵌入式系统、服务器 | 台式机、笔记本电脑、服务器、工作站 |
许可模式 | 开源、免版税许可 | ARM 将其设计授权给制造商 | 英特尔和 AMD 生产自己的芯片 |
生态系统 | 开发生态系统和开源计划 | 庞大的生态系统,广泛的第三方支持 | 庞大的软件和硬件生态系统 |
现在,让我们逐一讨论这些要点。
起源
让我先从 x86 开始,因为它是三种架构中最古老的一种。x86 架构可追溯到 1978 年,当时英特尔推出了 8086 系列。x86 架构是当时炙手可热的 CISC 架构。如今,x86 架构仍由英特尔和 AMD 控制。
7 年后,Acorn 计算机有限公司发布了 ARM1,ARM 架构由此起步。 如今,Acorn 计算机有限公司已不复存在,但其 ARM 架构通过 Arm 有限公司得以延续。Arm Ltd. 现在将 ARM 架构授权给其他公司使用。
相比之下,RISC-V 则非常新,2010 年才在加州大学伯克利分校诞生。 2015 年,多家科技公司(从 IBM 到谷歌再到 Nvidia)联合成立了 RISC-V 基金会。2020 年,由于地缘政治问题,RISC-V 基金会迁往瑞士,成为 RISC-V 国际组织。
指令集
首先,让我澄清一下 RISC 和 CISC 的区别。
RISC 处理器使用经过优化的小型指令集,每条指令只需一个时钟周期,因此执行速度更快,可预测性更高。
相比之下,CISC 处理器的指令集更大、更多样化,通常包括可能需要多个时钟周期的复杂指令,因此在处理各种任务时可能会更慢,但性能更全面。
因此,RISC-V 显然是基于 RISC 的。但它的与众不同之处在于它是开源的。
在他们 2014 年的论文中 指令集应该是免费的:RISC-V 案例Krste Asanović 和 David A. Patterson 将 RISC-V 与 Linux 进行了比较。他们的想法是,RISC-V 是一种完全开源的指令集架构。因此,人们应该能够操纵它、使用它并分享它。
阿萨诺维奇和帕特森认为,这可以推动创新、提高透明度和降低成本。
现在我应该提到,尽管 RISC-V 本身是开源的,但 RISC-V 的具体实现既可以是开源的,也可以是专有的。
ARM 指令也是基于 RISC 的。不过,由于 Arm Ltd. 授权使用该架构,因此它们并不是开源的。正如 Asanović 和 Patterson 所说:"ARM许可证甚至不能让你设计ARM内核,你只能使用他们的设计。虽然事情并非如此简单,但一般情况就是如此。
在上文,我说过 x86 架构是基于 CISC 的。这是事实,但我要提到的是,自上世纪 90 年代以来,x86 处理器还包含了用于并行处理任务的 SIMD(单指令、多数据)指令。这使得多核处理器也能快速运行。
毕竟,世界上速度最快的超级计算机 Frontier 就是基于 x86 处理器的。
但世界上速度第二快的超级计算机 Fugaku 是基于 ARM 的。
很多人认为,RISC 和 CISC 之间的区别在今天并不十分重要。他们说,由于现代处理器的功能非常强大,这些指令集之间的差异几乎已经消失。然而,阿萨诺维奇和帕特森在呼吁采用 RISC-V 时却认为,"已经有几十年没有任何新的 CISC ISA 取得成功了",因此采用基于 RISC 的架构更有意义。
字节顺序
字节序是指多字节数据类型存储在计算机内存中的字节顺序。
在小二进制系统中,最小有效字节存储在最低内存地址处,而在大二进制系统中,最大有效字节存储在最低地址处。
当你想在处理器之间交换数据时,端位是非常重要的。如果从大端系统向小端系统发送信息,如果转换不当,数据很容易损坏。
RISC-V 通常是小字节顺序。不过,如果你想让 RISC-V 采用大位元字节顺序,也可以进行配置。
ARM 架构既可以是小前端(little-endian)也可以是大前端(big-endian),具体取决于具体实现。与 RISC-V 一样,您也可以将 ARM 芯片配置为 big-endian。
Raspberry Pi 默认为小二进制。你可以自己到 Raspberry Pi 上打开终端并运行以下命令来验证:
lscpu
x86 架构是小endian 架构。但与 RISC-V 和 ARM 架构不同的是,你无法改变这一点。小endian 是 x86 架构的一个特点。
应用
我想回过头来谈谈阿萨诺维奇和帕特森的文章。虽然这篇文章发表于 2014 年,但它提出了一个非常重要的观点。他们断言:"虽然80×86赢得了PC战争,但RISC在后PC时代的平板电脑和智能手机中占据主导地位;2013年,ARM的出货量超过100[亿]台,而80×86只有3[亿]台。
这是一个巨大的差异,但也说明了架构的应用有助于确定其重要性。这就是为什么在 2020 年,苹果公司为其新电脑推出 M1 芯片会引起如此大的轰动。如果苹果从 x86 转向 ARM,那么这对 x86 的未来意味着什么?
尽管如此,x86 仍在计算机市场占据主导地位。台式机、笔记本电脑和服务器仍然主要依赖 x86 架构。
而 ARM 通常用于智能手机和平板电脑。当然,还有不起眼的 Raspberry Pi。但是 看来 ARM 也可能开始接管计算机世界了.
RISC-V 显然希望从 ARM 架构中分得一杯羹,但它在未来能做什么方面仍保持开放态度。大学和企业都在投资 RISC-V 并密切关注其发展。
如果 ARM 已经开始削弱 x86,那么 RISC-V 是否也会开始削弱 ARM?
许可模式
三种架构中限制最多的是 x86 架构。如上所述,实际上只有两家公司生产 x86 架构芯片--英特尔和 AMD。这些芯片不可定制,而且架构完全是专有的。
ARM 架构的工作方式与此不同,因为它采用的是许可模式。典型的 ARM 许可不允许您创建 ARM 架构设计。但也有例外,因为苹果公司的 M1 芯片就是按照他们的要求定制的。
RISC-V 架构是开放源码和免版税的,任何人都可以设计和制造 RISC-V 处理器,而无需支付许可费。它就像 ISA 中的 Linux。
有趣的是,英特尔和 AMD 都是 RISC-V 国际组织的成员。因此,它们显然也认为为 RISC-V 架构做出贡献很有价值。
生态系统
RISC-V 的生态系统发展迅速,许多公司和研究人员都为开源项目做出了贡献,并开发了基于 RISC-V 的产品。
虽然软件生态系统目前还不是很庞大,但它正在不断发展壮大。您可以通过 RISE 项目 (RISE 代表 RISC-V 软件生态系统)。
说到 ARM 和 x86,它们都在各自的市场中占据主导地位。两者的生态系统都非常完善和庞大。
这是 RISC-V 最明显的缺点之一。RISC-V 的采用范围远不如其他两种,竞争也非常激烈。
运行中的 RISC 和 CISC
在这段精彩的视频中 填空]程序员您可以在汇编代码的层面上清楚地看到 RISC 和 CISC 是如何工作的。
在这里,您可以详细了解 RISC 和 CISC 的区别。
在 ARM 和 RISC-V 上,汇编代码的行数较短,但数量较多。在 x86 上,汇编代码的行数更复杂,但数量更少。
视频介绍了 GCC 编译器和 Clang 编译器如何将 C++ 代码转换为 ARM vs. RISC-V vs. x86_64 这三种 ISA 的汇编。快来看看吧
总结
我们最近发表了一篇文章,比较了 配备 Raspberry Pi 5 和 Rock 5 Model B 的 Orange Pi 5 Plus.有趣的是,虽然这三款 SBC 都是基于 ARM 的,但 Radxa 其实还有一款 x86 型号,名为 Rock Pi X.
有人担心,更广泛地采用 RISC-V 会造成更多的碎片化。这与 Linux 的比较正好吻合。如今有多少 Linux 发行版?不过,RISC-V 社区正在积极制定标准,以尽量减少碎片化和兼容性问题。
许多人(包括一些反对者)认为 RISC-V 是将芯片架构推向未来的一种方式。
当然,随着国与国之间贸易战的升温,事情变得更加棘手。Arm Ltd. 总部位于英国,而英特尔和 AMD 总部位于美国。中国和俄罗斯等国转向 RISC-V 也就不足为奇了。
不过,也有人认为 RISC-V 注定要失败。他们认为,RISC-V 不会仅仅是 原因 碎片化,而是 RISC-V 已经 是 支离破碎。因此,它将无法启动。
更新e (十一月2023 年 12 月 6 日):Arm Holdings 刚刚宣布,他们已经收购了树莓派有限公司(Raspberry Pi Ltd.)的少数股份。目前尚不清楚这对未来意味着什么。更多信息,请点击此处:
您怎么看?RISC-V 是未来吗?请在评论中告诉我们!
如上所述,实际上只有英特尔和 AMD 三家公司生产 x86 架构芯片。
那就是......只有两个。
非常正确--谢谢,托佐!
我认为,从 2010 年一些大学研究人员在酒吧(或其他地方)决定开始设计他们自己的 ISA 开始计算 RISC-V 的年龄,而其他的则从市场上推出第一款商用芯片开始计算,这有点不公平。
随着汇编语言和二进制编码思想的发展,ISA经历了多个互不兼容的版本。
你能买到的第一款 RISC-V 芯片 SiFive 的 FE310 于 2016 年 12 月在 HiFive1 Arduino 克隆板上面世。它只是一个微控制器,只有用户模式指令。直到 2019 年 7 月基础 ISA 被批准(冻结、公布)前不久,机器模式和监督员模式指令和 CSR 还在积极开发和不兼容修改中。SiFive 在 2018 年初推出了一款 Linux SBC,HiFive Unleashed(采用 FU540 SoC),大约生产了 500 个,但这只是实验性的,他们已经做好准备,如果在批准之前对 ISA 进行不兼容的修改,该产品就会成为孤儿。
我认为公平的 "RISC-V 起源 "日期应介于 2017 年 5 月发布《特权体系结构 1.10》和 2019 年 7 月批准之间。肯定不是 2010 年。
在另一个话题上,我注意到 8086 是迄今为止 CISC 芯片中最不 CISC 的芯片,这也是它能够存活到 RISC 时代的一个重要原因(IBM PC 和克隆产品带来的数十亿美元也帮了大忙!)。VAX、M68000、Z8000、NS 16032/32032 过于复杂,难以快速制造。
"自 90 年代以来,x86 处理器还包括用于并行处理任务的 SIMD(单指令、多数据)指令。这使得多核处理器也能快速运行"。 这些完全没有关联。
"RISC-V架构是开源和免版税的,任何人都可以设计和制造RISC-V处理器,而无需支付许可费。它就像 ISA 中的 Linux"。 没错,但自己设计的成本远远高于从十几家商业 RISC-V 内核提供商(其商业模式与 Arm 非常相似)中的一家获得设计许可的成本。