按照 CPU 体系架构来区分,服务器主要分为两类:
CPU 架构:x86 架构 和 arm 架构
x86 是指 Intel 开发的一种 32 32 32 位指令集,从 386 386 386 开始时代开始的,一直沿用至今,是一种 CISC 指令集,所有 Intel 早期的 CPU,AMD 早期的 CPU 都支持这种指令集,Intel 官方文档里面称为 IA-32。
x86 CPU 开始迈向 64 64 64 位的时候有 2 2 2 种选择:
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 动不动就有数百个寄存器,可以有效的缓存中间计算结果,不需要把中间结果写入内存,从而减少内存访问次数,显著提升性能)。
上一篇:mysqlclient安装失败