一、历史问题
首先开头,我们平常桌面电脑使用的所谓64位平台其实是 x86-64,也就是说在原有的 x86 平台上实现 64 位。什么是 x86 平台呢,也就是 Intel 在 8086 之后一系列处理器中使用的架构,8086 是 16 位的,后来扩展到 32 位的 80386,之后一直沿用就形成最流行的的 32 位处理器系列,这种架构也叫做 IA32(Intel 实现32位),注意 AMD 也是使用 Intel 的技术。
32 位 x86 处理器经过大力发展,性能已经比较强大,完全适合于桌面计算机和通用服务器,用户和开发者数量庞大。但是 32 位 CPU 的内存寻址能力(可访问 4G 内存)有限,于是 AMD 公司率先开发出了 x86-64(也称为 AMD64)架构处理器,它完全可以实现 64 位计算。后来 Intel 自然不会示弱,也开发了EM64T(扩展内存 64 位技术),也就实现了和 AMD64 几乎一样的 IA32e(Intel 实现32位扩展)架构处理器。
但是要注意的是在 AMD64 诞生之前, Intel 和 HP 等公司合作开发了 IA64 (Intel 实现64位)架构,这个是一个全新的 64 位架构,不兼容原有的 32 位程序,只能通过模拟器模拟执行,而且效果完全不尽人意。不过这和我们现在讨论的 64 位没有关系,这大概就是误解的来源之一。
首先开头,我们平常桌面电脑使用的所谓64位平台其实是 x86-64,也就是说在原有的 x86 平台上实现 64 位。什么是 x86 平台呢,也就是 Intel 在 8086 之后一系列处理器中使用的架构,8086 是 16 位的,后来扩展到 32 位的 80386,之后一直沿用就形成最流行的的 32 位处理器系列,这种架构也叫做 IA32(Intel 实现32位),注意 AMD 也是使用 Intel 的技术。
32 位 x86 处理器经过大力发展,性能已经比较强大,完全适合于桌面计算机和通用服务器,用户和开发者数量庞大。但是 32 位 CPU 的内存寻址能力(可访问 4G 内存)有限,于是 AMD 公司率先开发出了 x86-64(也称为 AMD64)架构处理器,它完全可以实现 64 位计算。后来 Intel 自然不会示弱,也开发了EM64T(扩展内存 64 位技术),也就实现了和 AMD64 几乎一样的 IA32e(Intel 实现32位扩展)架构处理器。
但是要注意的是在 AMD64 诞生之前, Intel 和 HP 等公司合作开发了 IA64 (Intel 实现64位)架构,这个是一个全新的 64 位架构,不兼容原有的 32 位程序,只能通过模拟器模拟执行,而且效果完全不尽人意。不过这和我们现在讨论的 64 位没有关系,这大概就是误解的来源之一。