CPU架构简介(x86、ARM和RISC-V)
计算机架构或 CPU 系列,这两个术语我们可以互换使用。Linux 可以在大量不同的 CPU 架构上运行,这可以说是它如此受欢迎的原因之一。
除了通用代码和驱动程序之外,Linux 内核还包含特定于架构的代码。这种分离允许它移植 Linux,并使其可以快速地在新硬件上使用。
有许多方法可以确定 Linux 运行的是哪个 CPU。让我们依次来看几个。
一种方法是使用一种名为 dmidecode 的专用工具与 BIOS 交互。那么你可以尝试以下代码(输出被缩短):
在前面的命令中,我们看到 CPU 架构报告为 x86_64,模型报告为“Intel Core Processor(Haswell)”。
收集类似架构信息的另一种方法是使用 cat /proc/ cpuinfo,或者,如果你只对架构感兴趣,则只需调用 uname -m。
现在我们已经掌握了在 Linux 上查询架构信息的方法,让我们看看如何解码它。
今天,x86 CPU 家族主要用于台式计算机和笔记本计算机,但它也广泛用于服务器。具体来说,x86 构成了公有云的基础。它是一种功能强大且广泛使用的架构,但并不是非常节能。部分原因是它严重依赖无序执行,最近它受到了关于 Meltdown 等安全问题的大量关注。
有关更多细节,例如 Linux/x86 引导协议或 Intel 和 AMD 特定的背景,请参阅 x86 特定的内核文档。
因为 Acorn(ARM 的前身公司)的设计师从一开始就专注于最小化功耗,所以你可以在 iPhone 等许多便携式设备上找到基于 ARM 的芯片。它们也出现在大多数基于 Android 的手机和物联网中的嵌入式系统中,比如树莓派。
考虑到它们比 x86 芯片更快、更便宜、产生的热量更少,在数据中心中越来越多地发现基于 ARM 的 CPU,比如 AWS Graviton。
虽然 ARM 比 x86 更简单,但也不能避免漏洞,比如 Spectre。有关更多详细信息,请参阅 ARM 特定的内核文档。
截至 2021 年,已经有许多实现,从阿里巴巴集团和英伟达到 SiFive 等初创企业。虽然令人兴奋,但这是一个相对较新的、还没有被广泛使用的 CPU 家族。
如果想深入研究它,一个好的开始是 Shae Erisson 的文章“Linux on RISC-V”。更多详细信息,请参见 RISC-V 内核文档。
除了通用代码和驱动程序之外,Linux 内核还包含特定于架构的代码。这种分离允许它移植 Linux,并使其可以快速地在新硬件上使用。
有许多方法可以确定 Linux 运行的是哪个 CPU。让我们依次来看几个。
一种方法是使用一种名为 dmidecode 的专用工具与 BIOS 交互。那么你可以尝试以下代码(输出被缩短):
$ lscpu Architecture: x86_64 ① CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian Address sizes: 40 bits physical, 48 bits virtual CPU(s): 4 ② On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 60 Model name: Intel Core Processor (Haswell, no TSX, IBRS) ③ Stepping: 1 CPU MHz: 2592.094
- ❶ 我们在这里看到的架构是 x86_64。
- ❷ 看起来有四个可用的 CPU。
- ❸ CPU 型号名称为 Intel Core Processor(Haswell)。
在前面的命令中,我们看到 CPU 架构报告为 x86_64,模型报告为“Intel Core Processor(Haswell)”。
收集类似架构信息的另一种方法是使用 cat /proc/ cpuinfo,或者,如果你只对架构感兴趣,则只需调用 uname -m。
现在我们已经掌握了在 Linux 上查询架构信息的方法,让我们看看如何解码它。
CPU x86架构
x86 是最初由 Intel 开发的指令集家族,后来授权给 Advanced Micro Devices(AMD)。在内核中,x64 指的是英特尔 64 位处理器,x86 代表英特尔 32 位处理器。此外,amd64 指的是 AMD 64 位处理器。今天,x86 CPU 家族主要用于台式计算机和笔记本计算机,但它也广泛用于服务器。具体来说,x86 构成了公有云的基础。它是一种功能强大且广泛使用的架构,但并不是非常节能。部分原因是它严重依赖无序执行,最近它受到了关于 Meltdown 等安全问题的大量关注。
有关更多细节,例如 Linux/x86 引导协议或 Intel 和 AMD 特定的背景,请参阅 x86 特定的内核文档。
CPU ARM架构
ARM 拥有 30 多年的历史,是精简指令集计算(RISC)架构的家族。RISC 通常由许多通用 CPU 寄存器以及一组执行速度更快的指令组成。因为 Acorn(ARM 的前身公司)的设计师从一开始就专注于最小化功耗,所以你可以在 iPhone 等许多便携式设备上找到基于 ARM 的芯片。它们也出现在大多数基于 Android 的手机和物联网中的嵌入式系统中,比如树莓派。
考虑到它们比 x86 芯片更快、更便宜、产生的热量更少,在数据中心中越来越多地发现基于 ARM 的 CPU,比如 AWS Graviton。
虽然 ARM 比 x86 更简单,但也不能避免漏洞,比如 Spectre。有关更多详细信息,请参阅 ARM 特定的内核文档。
CPU RISC-V架构
RISC-V 是一种开放的 RISC 标准,最初由加州大学伯克利分校开发。截至 2021 年,已经有许多实现,从阿里巴巴集团和英伟达到 SiFive 等初创企业。虽然令人兴奋,但这是一个相对较新的、还没有被广泛使用的 CPU 家族。
如果想深入研究它,一个好的开始是 Shae Erisson 的文章“Linux on RISC-V”。更多详细信息,请参见 RISC-V 内核文档。