CPU 架构:ARM 和 x86 架构区别

计算机有两种主要的 CPU 架构可供选择。Windows PC 通常建立在 Intel 和 AMD 使用的 x86 平台上,而 Apple 的计算机则使用该公司自己的基于 ARM 架构的 M1 和 M2 处理器。

这些方法之间存在差异,并且对性能的意义具有重大影响。

ARM 与 x86:指令集

x86 和 ARM 处理器平台做相同的事情,但它们以完全不同的方式完成。它们的内部逻辑以不同的方式连接,具有不同的内部数据寄存器配置和不同的hard-coded指令集。也就是说,他们以不同的方式运行软件。

在 x86 平台上,处理器的内部结构和指令集最终基于 Intel 8008,这是一款于 1972 年首次亮相的 8 位 CPU。事实上,为该芯片编写的机器码程序仍然可以汇编并在英特尔或AMD的最新处理器上运行。

不过,从那时起,硬件自然有了很大的发展。在 8008 之后是 8088,然后是 16 位 8086,它为最初的 IBM PC 服务。在 1980 年代,紧随其后的是 80186、80286 等------因此被称为"x86"绰号。

经过几代人的努力,引入了支持多任务处理和虚拟内存的新功能;还增加了对 32 位和 64 位操作的支持,使计算机能够高效地处理庞大的数据集。一系列扩展可加速特定任务,例如图形处理、虚拟化和数据加密。

Apple 的处理器基于ARM 架构。这起源于 1980 年代中期的 Acorn Computers。该公司没有像以前的家用电脑那样从外部供应商那里购买芯片,而是着手设计一种性能优于现有竞争对手的新处理器。它成功了:在推出时,基于ARM的Acorn Archimedes是金钱可以买到的最强大的家用计算机。

如今,ARM平台由剑桥的Arm集团拥有和开发,与x86一样,它自成立以来一直在不断发展壮大。该平台的后续版本增加了 64 位支持和大量扩展,以加速常见的数学运算------包括在最新的 ARMv9 版本中,安全和人工智能 (AI) 功能。

RISC vs CISC:永恒的竞争

虽然 ARM 处理器可以做 x86 可以做的任何事情,但它们有不同的优势和劣势,因为它们遵循不同的设计理念,称为精简指令集计算机 (RISC)。该名称最初代表"Acorn RISC Machines",后来随着市场扩展,更改为"Advanced RISC Machines"。

在 1980 年代和 1990 年代,英特尔和其他芯片制造商正在将越来越多的特性和功能构建到芯片中,使程序员只需几行代码即可执行复杂的操作。这些处理器后来被称为复杂指令集计算机 (CISC) 芯片。

RISC的理念则相反,旨在通过将CPU简化为最低限度的基本功能,使CPU尽可能简单。因此,ARM 架构仅使用 34 条指令,这些指令主要处理简单的数学运算并在寄存器和存储器位置之间移动数据。相比之下,英特尔 8086 支持 81 条指令,允许更高级的数据操作------随着后续的修订和扩展,它已膨胀到 200 多条指令。

RISC方法似乎有悖常理。较小的指令集意味着程序需要更长、更复杂才能获得相同的结果。但是,RISC芯片的物理设计可能比CISC芯片简单得多。这可以使制造更容易、更便宜,并且可以以更快的速度分解指令------在大多数情况下,每个操作都在一个时钟周期内完成。它也可以消耗更少的功耗,这就是为什么ARM处理器在智能手机中占主导地位的原因,因为电池寿命是关键。

虽然 CISC 和 RISC 方法是相反的,但差异并不像想象的那么重要。如今,很少有程序是用纯汇编语言编写的,因此开发人员无需担心底层架构:他们可以在让解释器或编译器处理翻译之前用 Python、C# 或其他语言编写。事实上,Apple 基于 ARM 的 Mac 包括一个实时转换层,可以运行为 x86 系统编写的程序,而无需修改。

功耗的差异也比以前小。多年来,英特尔一直在努力与ARM芯片的低功耗相匹配,这不仅是因为其CPU设计的复杂性,还因为其内部制造工艺无法像竞争对手那样快速缩小芯片内部晶体管的尺寸。这是一个令人尴尬的点:最新的英特尔芯片仍在使用 10nm 制造工艺(被称为"Intel 7"),而苹果的 M 系列处理器自 2020 年推出以来一直使用 5nm 工艺。

为了提供帮助,英特尔于 2021 年底发布的第 12 代 Alder Lake 处理器引入了异构内核设计。以前的英特尔芯片通常具有四个或八个相同的内核,而当前的型号将轻量级的"效率内核"(E 内核)与强大的"性能内核"(P 内核)相结合,只有在最苛刻的任务需要它们时才会发挥作用。这个想法实际上是由 Arm 开创的------它引入了所谓的"big.LITTLE"设计------但现在英特尔已经加入进来,我们经常看到 Windows 笔记本电脑可以提供超过 10 小时的视频播放续航。

哪些科技公司制造处理器?

除了架构之外,两种主要计算架构之间的另一个显着区别是:与英特尔不同,Arm 不制造自己的任何处理器。相反,该公司将其设计授权给公司,然后公司可以根据需要定制它们,并按照自己的规格制造它们。就Apple Silicon而言,苹果使用核心ARM逻辑,但增加了许多自己的优化,并将制造外包给台积电。

芯片向最终用户推销的方式也不同。虽然英特尔的所有 x86 处理器都使用相同的底层架构,但它提供了大量不同的配置。在每一代酷睿 CPU 中,都有酷睿 i3、i5、i7 和 i9 变体,它们进一步细分为针对移动、台式机或游戏系统的不同型号范围。它们都具有不同数量的处理内核、不同的缓存内存量、不同的时钟速度和不同的电源要求。这很令人困惑,当你选择计算机时,你需要根据自己的需求选择一种型号来满足自己需求。

相比之下,在撰写本文时,苹果总共提供了七种计算机芯片,即 M1、M1 Pro、M1 Max、M1 Ultra、M2、M2 Pro 和 M2 Max。它的阵容比英特尔的要简单得多,即使是普通的 M1 也能与中端英特尔芯片竞争。

ARM 和 x86 CPU 如何访问 RAM

苹果的芯片和英特尔的芯片之间还有最后一个区别------这不是ARM架构所固有的,而是苹果自己做出的设计决定。英特尔的芯片依赖于外部系统RAM,而苹果则将内存直接集成到其M系列处理器的芯片中。

这意味着你永远无法升级 Apple Silicon 计算机上的内存,这可能会导致在选择规格时做出一些痛苦的决定。这也意味着主流芯片上根本没有真正的大量内存分配:M1 提供最大 16GB 的 RAM,而 M2 的 RAM 限制为 24GB。如果你想要 32GB 或更多,则需要升级到昂贵的 M1 Pro、Max 或 Ultra 系统。相比之下,英特尔的所有第 12 代和第 13 代处理器都可以使用高达 128GB 的 RAM。

然而,由于苹果的RAM实际上位于处理器逻辑旁边,并通过最快的结构连接到它,因此其处理器可以非常快速有效地访问代码和数据。标准 M1 的最大内存带宽为 68GB/秒,而 M2 高达 100GB/秒,M1 Pro、Max 和 Ultra 型号分别高达 200GB/秒、400GB/秒和 800GB/秒。对于英特尔来说,这完全取决于处理器、RAM 和主板的具体情况,但即使是最新、最快的酷睿 i9 也被限制在理论上的最大值为 90GB/秒。

更重要的是,苹果使用所谓的**"统一内存架构unified memory architecture"**,这意味着整个内存范围都可以由CPU或片上GPU直接访问。与传统的 PC 架构相比,这提供了巨大的效率优势,在传统的 PC 架构中,CPU 和 GPU 各自具有独立的内存库,并且如果不来回复制数据,就无法协同处理相同的数据。

是什么让 AMD 比 Intel 更好?

除了英特尔和苹果之外,CPU市场还有第三个主要参与者。然而,AMD的芯片没有如此独特的身份,因为它们使用与英特尔相同的核心x86架构和指令集。

关于英特尔和AMD的共生关系

为什么英特尔让其最大的竞争对手使用其专有架构?在 1980 年代初期,IBM 希望在最初的 IBM PC 中使用英特尔的芯片,但不想依赖单一的芯片来源。

它告诉英特尔,只有当第二家公司可以在许可下制造硬件时,它才会使用x86处理器。AMD 被授权制造 Intel 8086、80186 和 80286 处理器。后来,AMD创造了自己的芯片设计来与英特尔的芯片竞争。1990 年代后期发布的 K5 和 K6 以低于英特尔奔腾处理器的价格提供 x86 兼容性。

2000 年后,AMD 将新的 64 位处理模式嫁接到 x86 架构上,并增强了支持处理更大数字、更大数据集和更多 RAM 的功能。英特尔获得了这些扩展的许可,两家公司实际上相互依赖

尽管AMD的处理器可以运行与英特尔相同的程序,但存在一些关键差异。AMD销售自己的芯片,但并不自己制造芯片;这意味着它可以使用任何提供最佳技术的代工厂。虽然前两代Ryzen CPU是由Global Foundries生产的,但AMD在2019年转向台积电,以利用其7nm制造工艺,最新的Ryzen 7000系列芯片使用该公司的5nm工艺。

AMD的设计也经常比价格相似的英特尔芯片包含更多的内核,部分原因是AMD的**"chiplet"**方法。它不是将所有东西都构建在一个芯片上,而是将设计分解为多个处理器内核(chiplets),然后与共享资源(如cache)连接在一起。实际的核心数量可能具有误导性,因为两家公司都使用多线程技术,允许单个核心同时为两个执行线程提供服务。英特尔最近采用的效率核心进一步混淆了问题,这些核心对峰值性能没有贡献。

不过,总的来说,你通常会从AMD芯片中获得更多的多核处理能力--为了支持这些内核,AMD往往提供比英特尔更多的片上内存。虽然 Ryzen 处理器不会像 Apple 的芯片那样将整个 RAM 分配放在芯片芯片上,但它们通常具有大型缓存,可以帮助它们全速处理数据和指令,而无需等待从 DIMM 获取信息。

唯一的问题是多核性能到底有多有价值。大型数据库服务器和图形渲染程序可能会从并行处理能力中受益匪浅,但许多桌面应用程序大多是单线程的。在实践中,使用更少、更快的内核可能会获得更好的体验。

相关推荐
17(无规则自律)1 小时前
深入浅出 Linux 内核模块,写一个内核版的 Hello World
linux·arm开发·嵌入式硬件
梁洪飞13 小时前
内核的schedule和SMP多核处理器启动协议
linux·arm开发·嵌入式硬件·arm
代码游侠1 天前
学习笔记——Linux字符设备驱动
linux·运维·arm开发·嵌入式硬件·学习·架构
syseptember1 天前
Linux网络基础
linux·网络·arm开发
代码游侠2 天前
学习笔记——Linux字符设备驱动开发
linux·arm开发·驱动开发·单片机·嵌入式硬件·学习·算法
程序猿阿伟2 天前
《Apple Silicon与Windows on ARM:引擎原生构建与模拟层底层运作深度解析》
arm开发·windows
wkm9562 天前
在arm64 ubuntu系统安装Qt后编译时找不到Qt3DExtras头文件
开发语言·arm开发·qt
unicrom_深圳市由你创科技2 天前
基于ARM+DSP+FPGA异构计算架构的高速ADC采集卡定制方案
arm开发·fpga开发
松涛和鸣2 天前
DAY69 Practical Guide to Linux Character Device Drivers
linux·服务器·arm开发·数据库·单片机·嵌入式硬件
松涛和鸣2 天前
69、Linux字符设备驱动实战
linux·服务器·网络·arm开发·数据库·驱动开发