x64、x86_64、x64、AMD64
- X86系列及兼容CPU
- IA-32 Architecture
- Intel® 64 Architecture
- IA-64 Architecture
- 其他
- Visual Studio 命令行工具Vcvarsall.bat 参数
X86系列及兼容CPU
x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。
x86是指intel的开发的一种32位指令集,从386开始时代开始的,一直沿用至今,是一种cisc指令集,所有intel早期的cpu,amd早期的cpu都支持这种指令集,intel 官方文档里面称为IA-32 。
IAMD,Cyrix(现为VIA所收购)等厂家也生产X86指令集的CPU,其中32位(x86-32)的CPU有i80386,i80486,i80586,i80686,统称i80X86,简称x86 。
Intel从16位微处理器8086开始的整个CPU芯片系列,系列中的每种型号都保持与以前的各种型号兼容,主要有8086,8088(前面两个是16位CPU),80186,80286(这两个是过渡产品), 80386,80486以及以后各种型号的Pentium芯片都是32位CPU。直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64。后来Intel也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位时代。
IA-32 Architecture
所谓IA-32即Intel Architecture-32,是指从intel 386到奔腾的系列处理器。
AMD64的位技术是在原始32位X86指令集的基础上加入了X86-64扩展64位X86指令集,使这款芯片在硬件上兼容原来的32位X86软件,并同时支持X86-64的扩展64位计算,使得这款芯片成为真正的64位X86芯片。这是一个真正的64位的标准,X86-64具有64位的寻址能力。
Intel® 64 Architecture
包括 INTEL的 EM64T 和 AMD的是X86-64,都是64位,仍然向下兼容32位系统 因为CPU的架构还是基于IA-32体系。 x86-64有时会简称为“x64”,是64位微处理器架构及其相应指令集的一种,也是Intel x86架构的延伸产品。“x86-64”1999由AMD设计,AMD 首次公开 64 位集以扩充给 IA-32,称为 x86-64(后来改名为 AMD64)。 其后也为Intel所采用,现时英特尔称之为“Intel 64”.
当年64位X86处理器争夺战中Intel被AMD打个措手不及,后者联合微软抢先推出了X86_64指令集,Intel最终也接纳了AMD的64位指令集。不过在服务器市场上,Intel当时跟HP合作推出了安腾(Itanium)处理器,使用的是IA-64指令集体系,不过16年来安腾处理器越来越不受欢迎,Intel日前推出了代号Kittson的安腾9700系列处理器,这是最新但也是最后一代安腾处理器了,后续不再更新了。
Intel为支持EM64T技术的处理器设计了两大模式:传统IA-32模式(legacy IA-32 mode)和IA-32e扩展模式(IA-32e mode)。在支持EM64T技术的处理器内有一个称之为扩展功能激活寄存器(extended feature enable register,IA32_EFER)的部件,其中的Bit10控制着EM64T是否激活。Bit10被称作IA-32e模式有效(IA-32e mode active)或长模式有效(long mode active,LMA)。当LMA=0时,处理器便作为一颗标准的32 bit(IA32)处理器运行在传统IA-32模式;当LMA=1时,EM64T便被激活,处理器会运行在IA-32e扩展模式下。
当时AMD和Intel都打算开发64位的CPU,但是AMD抢先了一步,开发出一种能向下兼容旧32位的64位CPU,并称之为AMD64。
随后Intel也开发出一种64位CPU叫做IA64,但是不兼容32位,并且微软也没有过多地为这种新CPU进行专门的系统优化,导致当时的64位CPU被AMD独占鳌头。
最后Intel开发出来一种也能向下兼容32位的64位CPU,并把它称之为X86_64(Intel的这样命名表现出不服AMD64的地位,认为兼容32位的64位CPU并不是AMD想出来的)。
IA-64 Architecture
IA64,又称英特尔安腾架构(Intel Itanium architecture),使用在Itanium处理器家族上的64位指令集架构,由英特尔公司与惠普公司共同开发,2001年首次推出。
IA-64微处理器最大的缺陷是它们缺乏与x86的兼容。
其他
X86:32位(一般i386是32位CPU的统称)
X86_64:兼容32位的64位CPU,是64位(Intel的叫法)
AMD64:兼容32位的64位CPU,是64位(AMD的叫法)
Visual Studio 命令行工具Vcvarsall.bat 参数
Vcvarsall.bat 参数 | 编译器 | 生成计算机体系结构 | 生成输出体系结构 |
---|---|---|---|
x86 | x86 32 位本机 | x86, x64 | x86 |
x86_amd64 | x86 跨平台上的 x64 | x86, x64 | x64 |
x86_arm | x86 跨平台上的 ARM | x86, x64 | ARM |
amd64 | x64 64 位本机 | x64 | x64 |
amd64_x86 | x64 跨平台上的 x86 | x64 | x86 |
amd64_arm | x64 跨平台上的 ARM | x64 | ARM |