在软件开发过程中,你经常会看到X86
、X64
、ARM
、ARM64
等专业术语,你知道这些代表什么吗?这些其实是代表了不同CPU芯片的CPU架构
。
1. 什么是CPU架构?
CPU架构是一个多层次的概念,核心是指计算机中央处理器(CPU)的设计蓝图和组织结构。它定义了CPU如何工作、如何执行指令、如何与内存和其他硬件交互。具体来说,它可以涵盖以下几个方面:
指令集架构 (ISA - Instruction Set Architecture):
- 这是CPU架构中软件可见的部分,定义了CPU能够理解和执行的基本指令集合(如加、减、跳转、加载、存储等)。
- 它规定了指令的格式、操作码、寻址方式(如何指定操作数位置)、数据类型、寄存器组(CPU内部的高速存储单元)、内存访问模型、以及中断/异常处理机制等。
- ISA是软件(编译器、操作系统、应用程序)与硬件之间的契约。 编译器将高级语言代码编译成针对特定ISA的机器码(二进制指令)。操作系统和应用程序直接使用这些指令与CPU交互。
微架构 (Microarchitecture):
- 这是ISA的具体硬件实现。它描述了CPU内部的详细设计,如何在物理层面执行ISA定义的指令。
- 微架构决定了CPU的内部结构:流水线级数、分支预测策略、缓存大小和层次结构(L1, L2, L3)、超标量/超线程能力、执行单元的数量和类型(整数、浮点、向量)、总线宽度、功耗管理技术等。
- 同一个ISA可以有多种不同的微架构实现。 例如,Intel的Core i7和AMD的Ryzen 7都实现x86-64 ISA,但它们的内部微架构(如Intel的Sunny Cove/Raptor Cove, AMD的Zen系列)设计不同,导致性能、功耗、特性各异。
2. CPU架构的主要类型(按指令集分类)
CPU架构类型主要根据其指令集架构(ISA) 的特点来划分,最常见的是:
2.1. x86 家族
2.1.1. 指令集介绍
- 起源: 由Intel开发(始于8086处理器),后由AMD扩展到64位(x86-64)。
- 特点: 复杂指令集(CISC - Complex Instruction Set Computing)传统,指令长度可变,寻址方式丰富。指令功能强大但可能较复杂。
- 主导领域: 桌面电脑、笔记本电脑、服务器、工作站的主流架构。Windows, macOS (Intel Mac), Linux都广泛支持。
- 主要厂商: Intel, AMD。
2.1.2. 常见类型
术语 | 位宽 | 描述 | 别名/等效术语 |
---|---|---|---|
i386 | 32位 | Intel 80386起源的32位x86架构(IA-32) | x86, IA-32 |
x86 | 32位 | i386的现代简称 | - |
x86_64 | 64位 | Linux/Unix命名的64位x86扩展(AMD设计) | AMD64 (Windows) |
AMD64 | 64位 | Windows命名的64位x86架构 | x86_64 (Linux) |
📌 说明:
x86_64
=AMD64
=Intel 64
。三者完全等价,仅命名习惯不同;x86_64
常见于Linux/Unix,AMD64
常见于Windows。AMD64
不是AMD专属。AMD64
是最初由AMD设计的64位x86指令集扩展,后来Intel被迫兼容。AMD64_x86
严格意义上说不属于指令集架构。它是在64位Windows操作系统(x86_64架构
)中运行32位x86程序的兼容模式。
2.2. ARM 家族
2.2.1. 指令集介绍
- 起源: 由ARM Holdings公司设计其ISA,授权给其他公司(如Apple, Qualcomm, Samsung, Nvidia, Amazon, Google)制造芯片。
- 特点: 精简指令集(RISC - Reduced Instruction Set Computing)哲学。指令长度固定(通常是32位或64位),指令集更精简,设计更注重能效比(性能/功耗)。
- 主导领域: 移动设备(智能手机、平板电脑)的绝对霸主。 在嵌入式系统、物联网设备中也占据主导地位。近年来在笔记本电脑(Apple Silicon Mac)、服务器、高性能计算领域发展迅猛。ChromeOS, Android, iOS/iPadOS, macOS (Apple Silicon) 都支持ARM。
- 主要厂商: Apple (Apple Silicon M系列), Qualcomm (Snapdragon), Samsung (Exynos), MediaTek, Nvidia (Grace), Amazon (Graviton), Google (Tensor), 以及众多嵌入式芯片厂商。
2.2.2. 常见类型
术语 | 位宽 | 描述 | 应用场景 |
---|---|---|---|
ARM | 32位 | ARM 32位架构统称(历史遗留名称),现官方称 AArch32 | 旧手机/嵌入式设备 |
AArch32 | 32位 | ARMv7/ARMv8的32位模式,兼容传统ARM指令 | 旧Android/iOS设备、IoT |
ARM64 | 64位 | 非官方俗称,指ARM 64位架构(官方名:AArch64) | 开发者社区通用术语 |
AArch64 | 64位 | ARMv8+ 的官方64位ISA,完全重新设计(非AArch32扩展) | 现代手机/Apple Silicon/服务器 |
ARM64EC | 混合 | Windows专属:在ARM64系统中运行x64二进制代码的兼容层 | Windows on ARM运行x64程序 |
📌 说明:
AArch32
(纯32位)≠AArch64
(纯64位)。ARM64EC
严格意义上说不属于指令集架构,它是微软开发的动态二进制转换层(类似Rosetta 2)。
2.3. RISC-V
- 起源: 基于RISC原则的开源、免费指令集架构(ISA),由加州大学伯克利分校发起。
- 特点: 开源免费是其最大特点! 模块化设计(基础指令集+可选扩展),设计简洁,免授权费,允许高度定制化。
- 应用领域: 在嵌入式系统、物联网、教育研究领域快速普及。开始进入移动设备(协处理器)、服务器、高性能计算、AI加速器等领域。生态正在快速发展中。
- 主要厂商: 众多初创公司和大型科技公司(如SiFive, Google, NVIDIA, Qualcomm, Western Digital, Alibaba等)都在研发或使用RISC-V芯片。
2.4. 其他架构
2.4.1. 指令集介绍
- Power/PowerPC (PPC):
- 由IBM开发(部分源自早期的Power架构),曾用于Apple Macintosh(2006年前)、游戏机(PlayStation 3, Xbox 360, Wii/Wii U)、IBM服务器/超级计算机。现在主要存在于IBM的高端服务器和嵌入式领域。
- MIPS:
- 经典RISC架构,曾广泛用于工作站、网络设备(路由器)、嵌入式系统、游戏机(PlayStation 1, PlayStation 2, PSP, N64)。其重要性已被RISC-V等架构挑战。
- SPARC:
- 由Sun Microsystems开发(后被Oracle收购),主要应用于Sun/Oracle的高端服务器和工作站。现在应用范围大幅缩小。
- z/Architecture:
- IBM为其大型主机(mainframe)系统开发的专用架构,强调极高的可靠性和向后兼容性。
2.4.2. 常见类型
术语 | 描述 | 代表厂商/平台 |
---|---|---|
LoongArch64 | 中国龙芯自研的64位MIPS替代架构(自主指令集) | 龙芯(Loongson) |
Power | IBM高性能RISC架构(用于服务器/超级计算机) | IBM Power Systems |
Wasm_simd | WebAssembly的SIMD向量指令扩展(跨平台虚拟ISA) | 浏览器/Web运行时 |
3. CPU架构与指令集的关系
CPU架构
包含指令集架构(ISA)
和微架构(Microarchitecture)
。指令集架构
是上层软件可见的部分,是软件与硬件之间的抽象层和接口标准。软件开发领域提到的CPU架构
通常默认指的是CPU的指令集架构
。微架构
是指令集架构
的具体硬件实现。不同的CPU设计团队(如Intel, AMD, Apple)可以基于同一个ISA(例如x86-64)来设计内部结构完全不同的CPU。