打开网易新闻 查看精彩图片

x86并不等于32位,它原本是一整个CPU家族的名字 。

64位对应的是 x64 ,而32位却叫 x86, 这得追溯到 1978 年 Intel 推出的 8086 处理器(16位) 。随后的 286、 386(1985年,首款32位x86处理器) 、486沿袭了这种编号,由于 x86 体系 在随后近二十年里主导了 32 位时代,业界也就习惯用“ x86 ”直接指代 32 位架构(官方叫 IA-32) 。

然后到了 2000 年代, 4GB 内存上限 成为瓶颈,Intel 试图彻底抛弃过去,做一个全新的 64 位架构 (IA-64/安腾) ,但因 无法兼容老32位软件且性能未达预期 而惨败。AMD 则选择在原有 x86 指令集上进行 64 位 扩展 ,1999年设计、2003年推出了 x86-64 (后简写为 x64,AMD称 AMD64 ,Intel后来也采用了这套方案,并命名为 Intel 64。 )。这种方案不仅让内存上限从 4GB 飞跃到理论上的 16EB(大约1.8亿GB) ,还将 CPU 内部的 通用寄存器数量从8个翻了一倍到16个 ,大幅减少了数据交换的延迟。

这种演进还在 Windows 里留下了一套复杂的重定向机制。为了让 32 位程序在 64 位环境下运行,系统专门设立了 Program Files (x86) 文件夹,并通过 WOW64 ( Windows-on-Windows 64-bit ) 兼容子系统 来运行。这种 向下兼容 的设计,让它成了PC领域里生命力最强的架构。