x86、x86_64、x64、arm64、aarch64
- 1.服务器分类
- 2.CPU 架构
- 2.1 x86 架构:x86、x86_64、x64
- 2.2 arm 架构:arm64 和 aarch64
- 3.发展历史
1.服务器分类
按照 CPU 体系架构来区分,服务器主要分为两类:
- 非 x86 服务器:使用 RISC(精简指令集)或 EPIC(并行指令代码)处理器,并且主要采用 UNIX 和其它专用操作系统的服务器,指令系统相对简单,它只要求硬件执行很有限且最常用的那部分执令,CPU 主要有 Compaq 的
Alpha、HP 的PA-RISC、IBM 的Power PC、MIPS 的MIPS和 SUN 的Sparc、Intel 研发的EPIC安腾处理器等。这种服务器价格昂贵,体系封闭,但是稳定性好,性能强,主要用在金融、电信等大型企业的核心系统。 - x86 服务器:又称 CISC(复杂指令集)架构服务器,即通常所讲的 PC 服务器,它是基于 PC 机体系结构,使用 Intel 或其它兼容
x86指令集的处理器芯片的服务器。目前主要为 Intel 的Xeon E3,E5,E7系列,价格相对便宜、兼容性好、稳定性较差、安全性不算太高。

2.CPU 架构
CPU 架构:x86 架构 和 arm 架构
- Intel(英特尔)与 AMD(超威半导体)是
x86架构 CPU 制造商。 - ARM 公司是
arm架构 CPU 制造商。
2.1 x86 架构:x86、x86_64、x64
x86和x86_64:基于x86架构的不同版本, 位数不同 32 32 32 位和 64 64 64 位x86版本是 Intel 率先研发出x86架构。x86_64版本(也称x64)是x86的 64 64 64 位版本,由 AMD 率先研发,所以x86_64也叫amd64。x86_64=x64=amd64
2.2 arm 架构:arm64 和 aarch64
arm64=aarch64arm的历史遗留问题,arm64和aarch都曾代指过 64 64 64 位arm程序,目前arm64和aarch64概念已合并,新版 64 64 64 位arm程序统称aarch64。

3.发展历史
x86 是指 Intel 开发的一种 32 32 32 位指令集,从 386 386 386 开始时代开始的,一直沿用至今,是一种 CISC 指令集,所有 Intel 早期的 CPU,AMD 早期的 CPU 都支持这种指令集,Intel 官方文档里面称为 IA-32。
x86 CPU 开始迈向 64 64 64 位的时候有 2 2 2 种选择:
- 向下兼容
x86。 - 完全重新设计指令集,不兼容
x86。
AMD 抢跑了,比 Intel 率先制造出了商用的兼容 x86 的 CPU,AMD 称之为 amd64,抢了 64 64 64 位 PC 的第一桶金,得到了用户的认同。
Intel 选择了设计一种不兼容 x86 的全新 64 64 64 位指令集,称之为 IA-64(这玩意似乎就是安腾),但是比 AMD 晚了一步,而且 IA-64 也挺惨淡的,因为是全新设计的 CPU,没有编译器,也不支持 Windows(微软把 Intel 给忽悠了,承诺了会出安腾版 windows server 版,但是迟迟拿不出东西)。后来不得不在时机落后的情况下也开始支持 amd64 的指令集,但是换了个名字,叫 x86_64,表示是 x86 指令集的 64 64 64 扩展,大概是不愿意承认这玩意是 AMD 设计出来的。
实际上,x86_64、x64、AMD64 基本上是同一个东西,我们现在用的 Intel / AMD 的桌面级 CPU 基本上都是 x86_64,与之相对的 arm、ppc 等都不是 x86_64。
x86、x86_64 主要的区别就是 32 32 32 位和 64 64 64 位的问题,x86 中只有 8 8 8 个 32 32 32 位通用寄存器:eax、ebx、ecx、edx、ebp、esp、esi、edi。
x86_64 把这 8 8 8 个通用寄存器扩展成了 64 64 64 位的,并且比 x86 增加了若干个寄存器(好像增加了 8 8 8 个,变成了总共 16 16 16 个通用寄存器)。同样的 MMX(MultiMedia eXtensions,多媒体扩展)的寄存器的位数和数量也进行了扩展。此外 CPU 扩展到 64 64 64 位后也能支持更多的内存了,等等许多好处。
对于普通程序来说,CPU 位数的扩展、寄存器数量的增加不会带来明显的性能提升,比如 IE 浏览器、Office 办公这类的软件。特定的程序很能够充分利用 64 64 64 位 CPU、更多的寄存器带来的优势,比如 MMX 除了能提升多媒体程序的性能,对矩阵、多项式、向量计算都能带来提升,更多的 MMX 寄存器、更大的寄存器字长都有利于 SIMD 指令的执行,能够提升 CPU 对数据的吞吐量(RISC 指令集的 CPU 动不动就有数百个寄存器,可以有效的缓存中间计算结果,不需要把中间结果写入内存,从而减少内存访问次数,显著提升性能)。