当x64代表64位时,为什么x86代表32位?

Sim*_*ter 110 history 32bit-64bit

我的问题是当 64 位的简写是 x64 时,为什么 32 位 x86 的简写?

我猜这与 386 和 486 的时代有关,当时 32 位处理器都以 86 结束,但肯定有处理器没有以 86 结束并且仍然是 32 位?

有谁知道这件事的历史或可以指导我找到一个很好的信息来源?

Dan*_*ral 203

嗯,曾经有一种叫做 8086 的芯片,还有一个叫做 8088 的更便宜的版本,被用在一个叫做 IBM PC 的个人电脑上。该芯片的改进版本被称为 80186,尽管那不是一个非常受欢迎的版本。然而,后来改进了改进版本,称为 80286。现在,这是一种非常流行的芯片,特别是因为它被用于名为 IBM PC AT 的计算机中。

后来,创造和销售 8086、8088、80186 和 80286 芯片的英特尔,所有这些芯片都具有 16 位架构,看到需要创造一个 32 位芯片来与其他人的类似产品竞争。为了利用其现有地位,它使新芯片能够运行为前面提到的芯片制作的软件。很自然地,英特尔将这种新芯片称为 80386。

那时有很多计算机使用各种版本的英特尔芯片,也有与英特尔芯片兼容的非英特尔芯片。所以人们开始将它们称为 80x86。

过了一会儿,英特尔推出了新芯片,但它决定放弃80,所以它变成了486而不是80486。同样,人们在“80x86”的前面去掉了“80”,并称这种东西为x86 .

现在,我很确定有些人会说英特尔在某个时候将他们的芯片标记为 x86,他们确实这样做了,但我不在乎。

事实是,不断增加的中间数字产生了 80x86,而 x86 也由此而来——即使 80186 和 80286 不是 32 位。

那么,一旦英特尔最终走向 64 位,它称其新架构是什么?对!IA64!:-) 可以这么说,它还追溯地将 x86 重命名为 IA32。只有 IA64 不兼容 x86,我的意思是 IA32,所以每个人都忽略了它。

然后是 AMD,它决定市场需要一个 64 位 CPU,尽可能与 x86 系列兼容。作为一种营销诉求,他们将其称为“x86-64”系列,并且取得了巨大的成功。如此之多以至于英特尔最终不情愿地采用了他们自己的基于 x86 的 64 位 CPU。

后来,由于人们懒惰,x86-64 被简称为 x64。

所以,回答你的问题,因为 x64 比 x86-64 短。

  • @Jeremy Hajek:AMD64/x86_64 是真正的 64 位芯片设计,它的 64 位模式不是仿真并且没有性能影响(事实上,它的 32 位模式也不是仿真)。该芯片具有64位指令集和64位寄存器,使其成为64位芯片。我不知道你从哪里得到 AMD 从未销售过 64 位芯片的印象。的确,AMD 从未像英特尔销售 IA64 那样销售破坏与 32 位芯片兼容性的 64 位芯片。 (20认同)
  • 不是挑剔,而是完全准确,AMD 从未销售过 64 位芯片。AMD 推出的 x64 或 x86_64 是添加到英特尔创建的 x86 指令集的 64 位扩展 - 因此 x86_64 与英特尔的安腾 (IA_64) 相对,后者是真正的 64 位芯片,与 x86 指令集不兼容。 (11认同)
  • 此外,我相信 Intel 面临商标问题,因为他们只是使用数字,而你不能为一系列数字注册商标,这就是为什么原本 80586 变成了 Pentium,一个他们可以继续注册商标的虚构名称。 (7认同)
  • 澄清一下:AMD 称他们的扩展名为 AMD64,而英特尔称他们的(他们从 AMD 获得许可)为 Intel64。有一些细微的差异(它们不是 100% 兼容),因此大多数操作系统供应商通常使用公共子集。在 Windows 2008 DVD 上,安装文件夹实际上称为 AMD64(与 32 位上的 I386 相对)。我不知道 x86_64 来自哪里:来自 AMD,因为它是 x86 的扩展,或者来自想要一个中性术语的 Unix 供应商。 (3认同)
  • x64 仅用于 Windows / Microsoft 术语。GNU/Linux 将架构称为 x86-64 或 amd64。(并调用 32 位 x86 `i386`)。只有(或至少大部分)在 Windows 世界中 x86 专门表示 32 位 x86。大多数谈论 CPU 的硬件人员都将 x86 理解为任何向后兼容 8086 的 CPU,无论它在什么模式下运行(通常是 64 位长模式,或者有时是 64 位内核下的 32 位兼容模式。)如果我说“x86 具有高效的发布/获取无锁原子”,我不排除 64 位。 (2认同)

Bar*_*rim 38

可能是因为 x86 系列在很长一段时间内成为 32 位处理器的同义词,而 x64 是专门为 64 位指定的应用程序和操作系统的过渡,现在有些软件应用程序需要 64 位指定才能运行(如某些 VM 软件)。

换句话说,出于这个原因,它更多的是营销而不是技术。

  • x86 来自 8086、286、386、486、586 等。它可以很容易地变成“*86” (26认同)
  • 因为 x86 起源于 8086,我一直无法弄清楚为什么它总是与 32 位相关联。我记得,8086 是一个 16 位处理器,它使用双寄存器来启用 32 位内存寻址。那时,英特尔远不是该领域的领导者。顺便说一句@gWaldo,你遗漏了 80186。 (6认同)
  • 这个答案没有错,但老实说,我认为丹尼尔的答案应该是公认的,因为它更详细。 (2认同)

bin*_*dbn 18

来自维基百科:术语 x86 是指一系列基于 Intel 8086 CPU 的指令集架构。