当前位置: 首页 > 其它资源 > 正文
Arm 与 x86:指令集、架构和所有关键差异详细说明

Arm 与 x86:指令集、架构和所有关键差异详细说明

作者:大眼仔~旭 日期:2年前 (2022-12-08) 评论:0 条

摘要:安卓操作系统是为在三种不同类型的处理器架构上运行而构建的。Arm、英特尔和 MIPS。在英特尔放弃其手机 CPU 后,前者是今天无处不在的架构,而手机的 MIPS 处理器已经多年未见。Arm 是安卓和苹果生态系统中所有现代智能手机使用的 CPU 架构。Arm 处理器也正在通过 Windows for Arm 和苹果公司…

安卓操作系统是为在三种不同类型的处理器架构上运行而构建的。Arm、英特尔和 MIPS。在英特尔放弃其手机 CPU 后,前者是今天无处不在的架构,而手机的 MIPS 处理器已经多年未见。Arm 是安卓和苹果生态系统中所有现代智能手机使用的 CPU 架构。Arm 处理器也正在通过 Windows for Arm 和苹果公司不断增长的 Mac 定制 Apple Silicon 系列进入 PC 市场。随着 Arm 与英特尔 CPU 战争的大幅升温,这里有你需要知道的关于 Arm 与 x86 的一切。

CPU 架构解释

中央处理器(CPU)是你设备的 “大脑”,但它并不完全聪明。CPU 只有在得到非常具体的指令时才能工作(适当地称为指令集),它告诉处理器在寄存器和存储器之间移动数据,或使用特定的执行单元进行计算(如乘法或减法)。独特的 CPU 硬件块需要不同的指令,这些指令往往随着更复杂和更强大的 CPU 而扩大。所需的指令也可以为硬件设计提供参考,我们一会儿就会看到。

 Arm 与 x86

Arm 与 x86

在你的手机上运行的应用程序不是用 CPU 指令编写的;这对于今天的大型跨平台应用程序来说,比在各种芯片上运行要疯狂。相反,用各种高级编程语言(如 Java 或 C++)编写的应用程序被编译为特定的指令集,以便它们在 Arm、x86 或其他 CPU 上正确运行。这些指令被进一步解码为 CPU 内的微码操作,这需要硅空间和功率。如果你想要最低功率的 CPU,保持指令集的简单性是最重要的。然而,从更复杂的硬件和同时执行多个操作的指令中可以获得更高的性能,但要牺牲功率。这是 Arm 与 x8 6之间的根本区别,也是它们设计 CPU 的历史方法。

Arm 是基于 RISC(精简指令集计算),而 x86 是 CISC(复杂指令集计算)。Arm 的 CPU 指令是合理的原子性的,指令的数量和微操作之间有非常密切的关联。相比之下,CISC 提供更多的指令,其中许多指令执行多个操作(如优化的数学和数据移动)。这导致了更好的性能,但在解码这些复杂的指令时,功耗更大。

也就是说,如今 RISC 和 CISC 之间的界限有点模糊,彼此都在借鉴对方的想法,而且有各种各样的 CPU 内核建立在架构变化之上。此外,定制 Arm 架构的选择意味着合作伙伴,如苹果,可以添加他们自己的更复杂的指令。

但需要注意的是,正是指令和处理器硬件设计之间的联系构成了一个 CPU 架构。这样,CPU 架构可以为不同的目的而设计,如极端的数字运算,低能耗,或最小的硅面积。在研究 Arm 与 x86 的 CPU 时,这是一个关键的区别,因为前者是基于低能耗的指令集和硬件。

现代 64 位 CPU 架构

今天,64 位架构是智能手机和 PC 的主流,但情况并非总是如此。手机直到 2012 年才进行转换,比 PC 晚了十年左右。简而言之,64 位计算利用足够大的寄存器和内存地址来使用 64 位(1 和 0)长数据类型。除了兼容的硬件和指令,你还需要一个 64 位的操作系统,如安卓。

业内资深人士可能还记得,当苹果公司在其安卓竞争对手之前推出其第一个 64 位处理器时,引起了轩然大波。迁移到 64 位并没有改变日常的计算。然而,使用高精度浮点数字有效地运行数学是很重要的。64 位寄存器还提高了 3D 渲染精度、加密速度,并简化了 4GB 以上内存的寻址。

个人电脑早于智能手机转向64位,但并不是英特尔创造了现代x86-64架构(也称为x64)。这一荣誉属于AMD在1999年的公告,它改造了英特尔现有的x86架构。英特尔的替代性IA64 Itanium架构被弃置一旁。

Arm 在 2011 年推出了其 ARMv8 64 位架构。Arm 没有扩展其 32 位指令集,而是提供了一个干净的 64 位实现。为了实现这一目标,ARMv8 架构使用了两种执行状态:AArch32 和 AArch64。正如其名称所暗示的,一个用于运行 32 位代码,一个用于 64 位。ARM 设计的优点是处理器可以在正常执行期间从一种模式无缝切换到另一种模式。这意味着 64 位指令的解码器是一个新的设计,不需要与 32 位时代保持兼容,但整个处理器仍然向后兼容。然而,Arm 最新的 ARMv9 Cortex-A 处理器现在只有 64 位,切断了对这些下一代 CPU 上旧的 32 位应用程序和操作系统的支持。此外,谷歌也在 Pixel 7 的固件中禁用了对 32 位应用程序的支持。

Arm 的异构计算赢得了移动的青睐

上面讨论的架构差异部分地解释了这两个芯片巨头目前的成功和面临的问题。Arm 的低功耗方法完全适合移动设备的 5W 以下热设计功率(TDP)要求,但性能也能扩展到与英特尔的笔记本电脑芯片相匹配。请看苹果的 M1 系列基于 Arm 的处理器,它在 PC 领域提供了严重的竞争。同时,英特尔 100W 以上 TDP 的酷睿 i7 和 i9 产品,以及竞争对手 AMD Ryzen 的芯片组,在服务器和高性能台式机中大获全胜,但在历史上却很难降到 5W 以下。请看可疑的 Atom 产品系列。

当然,我们也不能忘记硅制造工艺在过去十年里在大幅提高电源效率方面发挥的作用。广义上讲,更小的 CPU 晶体管消耗的功率更少。英特尔的 7 纳米 CPU(被称为英特尔 4 工艺技术)预计要到 2023 年才会出现,而且这些 CPU 可能由台积电而不是英特尔的代工厂制造。在这段时间里,智能手机芯片组已经从 20 纳米到 14 纳米、10 纳米和 7 纳米、5 纳米,以及现在的 4 纳米设计,截至 2022 年的市场。这仅仅是通过利用三星和台积电代工厂之间的竞争实现的。这也在一定程度上帮助 AMD 通过其最新的 7 纳米和 6 纳米 Ryzen 处理器缩小了与 x86-64 对手的差距。

然而,Arm 架构的一个独特功能在保持移动应用的低 TDP 方面发挥了特别重要的作用(异构计算)。这个想法很简单,建立一个架构,让不同的 CPU 部件(在性能和功率方面)一起工作以提高效率。

Arm 在这个想法上的第一次尝试是 2011 年的 big.LITTLE,即大 Cortex-A15 和小 Cortex-A7 内核。将更大的失序 CPU 内核用于高要求的应用,而将高能效的失序 CPU 设计用于后台任务,这种想法在今天的智能手机用户看来是理所当然的,但它花了几次尝试来完善这个公式。2017 年,Arm 通过 DynamIQ 和 ARMAv8.2 架构建立了这一理念,允许不同的 CPU 坐在同一个集群中,共享内存资源,以实现更高效的处理。DynamIQ 还实现了中端芯片中常见的 2+6 CPU 设计,以及在旗舰级 SoC 中看到的小、大、更大(1+3+4 和 2+2+4)CPU 设置。

英特尔的竞争对手 Atom 芯片,没有异构计算,无法与 Arm 的性能和效率平衡。直到 2020 年,英特尔的 Foveros、嵌入式多芯片互连桥(EMIB)和混合技术项目才产生了一个竞争性的芯片设计–10 纳米 Lakefield。Lakefield 结合了一个高性能的 Sunny Cove 内核和四个节能的 Tremont 内核,以及图形和连接功能。然而,即使是这种封装也是针对联网的笔记本电脑,其 TDP 为 7W,这对智能手机来说仍然太高。

今天,Arm 与 x86 在 10W TDP 以下的笔记本电脑市场领域的争夺越来越激烈,英特尔在这一领域的规模缩小,而 Arm 的规模扩大越来越成功。苹果公司在 Mac 上改用自己的定制 Arm 芯片是 Arm 架构性能不断提高的一个典型例子,这部分归功于异构计算和苹果公司的定制优化。

定制的 Arm 内核和指令集

Arm 和英特尔之间的另一个重要区别是,后者从头到尾控制其整个过程,直接销售其芯片。Arm 只是销售许可证。英特尔将其架构、CPU 设计、甚至制造完全保留在内部。尽管后一点可能会改变,因为英特尔希望将其一些尖端制造业多样化。相比之下,Arm 向苹果、三星和高通等合作伙伴提供各种产品。这些产品包括 Cortex-X3 和 A710 等现成的 CPU 内核设计,通过 Arm CXC 项目合作开发的设计,以及允许苹果和三星等公司开发定制 CPU 内核甚至调整指令集的定制架构许可。

构建定制的 CPU 是一个昂贵而复杂的过程,但如果操作正确,可以带来强大的结果。苹果公司的 CPU 展示了定制的硬件和指令如何推动 Arm 的性能,可以与主流的 x86-64 和更高的性能相媲美。尽管三星的 Mongoose 内核不太成功,并最终倒闭。高通公司也在重新进入定制 Arm CPU 游戏,以 14 亿美元收购了 Nuvia。

苹果公司打算用自己的基于 Arm 的芯片逐步取代其 Mac 产品内的英特尔 CPU。苹果 M1 是这一努力中的第一个芯片,为最新的 MacBook Air、Pro 和 Mac Mini 提供动力。最新的 M1 Max 和 M1 Ultra 拥有一些令人印象深刻的性能改进,强调高性能的 Arm 内核可以在更高要求的计算场景中对抗 x86-64。

英特尔和 AMD 使用的 x84-64 架构在消费类硬件领域的原始性能方面仍然处于领先地位。但是 Arm 现在在高性能和能效仍然是关键的产品领域非常有竞争力,这包括服务器市场。在撰写本文时,世界上最强大的超级计算机有史以来第一次在 Arm CPU 内核上运行。它的 A64FX SoC 是富士通设计的,是第一个运行 Armv8-A SVE 架构。

软件兼容性

正如大眼仔前面提到的,应用程序和软件必须为它们所运行的 CPU 架构进行编译。CPU 和生态系统之间的历史联姻(如 Arm 上的 Android 和 x86 上的 Windows)意味着兼容性从来都不是一个真正的问题,因为应用程序不需要在多个平台和架构上运行。然而,在多个 CPU 架构上运行的跨平台应用程序和操作系统的增长正在改变这种状况。

苹果公司基于 Arm 的 Macs、谷歌的 Chrome OS 和微软的 Windows for Arm 都是现代的例子,软件需要同时在 Arm 和 x86-64 架构上运行。对于新的应用程序和愿意投资于重新编译的开发者来说,为这两者编译本地软件是一个选择。为了填补空白,这些平台还依赖于代码仿真。换句话说,将为一种 CPU 架构编译的代码翻译成在另一种架构上运行。与原生应用程序相比,这效率较低,而且性能下降,但目前良好的仿真是可以确保应用程序的运行。

经过多年的发展,Arm 上的 Windows 仿真对大多数应用程序来说都处于相当好的状态。同样,安卓应用在英特尔 Chromebooks 和 Windows 11 机器上的运行情况在大多数情况下也很好。苹果有自己的仿真工具,称为 Rosetta 2,以支持传统的 Mac 应用程序。但是,与原生编译的应用程序相比,这三者的性能都会受到影响。

Arm 与 x86 的未来

在过去十年 Arm 与 x86 的竞争中,Arm 已经赢得了智能手机等低功耗设备的选择。该架构也正在向笔记本电脑和其他需要提高功率效率的设备进军。尽管在手机上败下阵来,英特尔的低功耗努力在过去几年中也有所改进,Alder Lake 和 Raptor Lake 等混合理念现在与手机中的传统 Arm 处理器有更多共同之处。

也就是说,从工程角度来看,Arm 和 x86 仍然有明显的不同,它们仍然有各自的优势和劣势。然而,随着生态系统越来越多地支持这两种架构,这两种架构的消费者用例正变得模糊不清。然而,虽然 Arm 与 x86 的比较存在交叉,但在可预见的未来,Arm 肯定会继续成为智能手机行业的首选架构。该架构在笔记本电脑级的计算和效率方面也显示出重大前景。

声明:大眼仔旭 | 本文采用署名-非商业性使用-相同方式共享 4.0 国际许可协议[CC BY-NC-SA]进行授权
文章名称:《Arm 与 x86:指令集、架构和所有关键差异详细说明
文章固定链接:http://www.dayanzai.me/arm-vs-x86-key-differences.html
本站资源仅供个人学习交流,请于下载后 24 小时内删除,不允许用于商业用途,否则法律问题自行承担。
转载声明
全部评论: (0条)
^_^ 暂无评论!

发表评论

返回顶部