CPU
架构通过指令集的方式一般可分为 复杂指令集(CISC)
和 精简指令集(RISC)
两类,CISC
主要是 x86
架构,RISC
主要是 ARM
架构,还有 MIPS
、RISC-V
、PowerPC
等架构。
本文重点介绍 x86
和 ARM
架构。
x86
1978 年 6 月 8 日,英特尔发布了 16
位微处理器 8086
,这款史诗级的 CPU
为 x86
架构的传奇正式拉开帷幕,x86
架构从此诞生!
之所以叫 x86
架构是因为英特尔发布的 8086
、80186
、80286
、80386
等 CPU
都是以 86
结尾的,所以将英特尔之后发布的 CPU
架构都叫做 x86
架构。
IA64
随着技术和硬件的不断发展,CPU
逐步从 16
位、32
位向 64
位转变,英特尔为了继续统治 64
位市场则开发了 IA64
系列,即 英特尔架构64(Intel Architecture 64
)。
但是 IA64
却是一个彻头彻尾的失败品,原因是 IA64
架构和 x86
架构竟然不兼容。
x86_64
几家欢喜几家忧,伴随着 IA64
的失败 AMD
则是异军突起,率先搞出了兼容 x86
的 x64
架构 x86_64
。
讽刺的是 Intel
如果想要生产 x86_64
需要有 AMD
的授权,在 x86
的时代则是 AMD
需要向 Intel
要授权,真是三十年河东三十年河西啊。
amd64
因为 x86_64
是 AMD
率先搞出来的,所以 x86_64
也叫 amd64
。
在安装软件选择版本时应该知道 amd64
其实就是 x86_64
。
ARM
ARM
是高级精简指令集的简称(Advanced RISC Machine
),属于 精简指令集(RISC)
架构。
ARMv7
以及之前的版本都是 32
位的,ARMv8
就改成 64
位并兼容 32
位。
AArch64
AArch64
和 ARM64
可以认为是同一个东西。
ARM64
很好理解,就是 ARM
的 64
位版本,AArch64
是官方名称,意思是 Arm Architecture 64-bit
。
对于 ARMv8
来说,它拥有两种执行模式:
- AArch64 :64-bit registers and memory accesses, new instruction set.
- AArch32 :backwards compatible with ARMv7-A.
“AArch64” is the official name, it means “Arm Architecture 64-bit”.
“arm64” is an unofficial name some people use because the official name sucks.
Originally there was just the 32-bit architecture, called “ARM”. Then in October 2011 the ARMv8-A spec added a new 64-bit execution state called “AArch64”, retroactively renaming the old 32-bit architecture “AArch32”. Then to add a bit more confusion, in 2017 the company rebranded from being called “ARM” (an acronym for “Advanced RISC Machines”) to just “Arm”.
Support for AArch64 was added to Linux in 2012. The patchset was initially called “aarch64” but was renamed to “arm64”. The LLVM community and Apple started working in parallel to support it in clang in 2012, the LLVM community called it “aarch64” and Apple called it “arm64”. Apple open-sourced their changes and the two efforts lived together in LLVM under their different names and were eventually merged in 2014 so LLVM/clang now just calls it “aarch64”.
具体细节详情可参考 Stack Overflow
和 Wiki
:
- https://stackoverflow.com/questions/31851611/differences-between-arm64-and-aarch64
- https://en.wikipedia.org/wiki/ARM_architecture_family#Armv8-R_and_Armv8-M
MIPS
MIPS(Microprocessor without Interlocked Pipeline Stages),是一种采取精简指令集(RISC)的指令集架构(ISA),由美国MIPS计算机系统公司开发,现为美普思科技。MIPS广泛被使用在许多电子产品、网络设备、个人娱乐设备与商业设备上。最早的MIPS架构是32位,最新的版本已经变成64位。
参考文章:https://en.wikipedia.org/wiki/MIPS_architecture
RISC-V
RISC-V(发音为“risk-five”)是一个基于精简指令集(RISC)原则的开源指令集架构(ISA),简易解释为开源软件运动相对应的一种“开源硬件”。该项目2010年始于加州大学伯克利分校,但许多贡献者是该大学以外的志愿者和行业工作者。
与大多数指令集相比,RISC-V指令集可以自由地用于任何目的,允许任何人设计、制造和销售RISC-V芯片和软件而不必支付给任何公司专利费。虽然这不是第一个开源指令集[1],但它具有重要意义,因为其设计使其适用于现代计算设备(如仓库规模云计算机、高端移动电话和微小嵌入式系统)。设计者考虑到了这些用途中的性能与功率效率。该指令集还具有众多支持的软件,这解决了新指令集通常的弱点。[2]
RISC-V指令集的设计考虑了小型、快速、低功耗的现实情况来实做,但并没有对特定的微架构做过度的设计。[3][4]截至2017年5月RISC-V已经确立了版本2.22的用户空间的指令集(userspace ISA),而特权指令集(privileged ISA)也处在草案版本1.10。
参考文章:https://en.wikipedia.org/wiki/RISC-V
PowerPC
PowerPC(Performance Optimization With Enhanced RISC – Performance Computing,简称PPC)是一种精简指令集(RISC)的指令集架构 ISA(Instruction set architecture),其基本的设计源自IBM的POWER(Performance Optimized With Enhanced RISC)架构。
1991年,Apple、IBM、Motorola组成AIM联盟,意欲发展一泛用的微处理器架构,其成果即为PowerPC。PowerPC架构基础来自于1990年随RISC System/6000推出的IBM POWER架构,而POWER架构又是从早期的RISC架构(比如IBM 801)与MIPS架构的处理器得到灵感的。PowerPC架构的特点是可伸缩性好、方便灵活。第一代PowerPC采用0.6微米制程,晶体管约为单芯片280万个。
参考文章:https://en.wikipedia.org/wiki/PowerPC