题 当x64代表64位时,为什么x86代表32位? [关闭]


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

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

有谁知道这个的历史或可以指导我一个良好的信息来源?

谢谢


86
2017-10-06 14:48




一直想知道这个+1无意识的好奇心! - Gabriel Guimarães
今天早上我才问自己这个! - Sean Howat
我认为整个术语不是x64而是x86_64 - Kedare
恕我直言,“x86”并不意味着(并且从未意味着)任何通用的32位架构。 Daniel的回答给出了历史。有许多其他32位处理器与80386同时(或者比80386更早),并且还有很多仍然存在并且在当今市场上很好。例如,68000系列(在原始Macintosh中使用)比8086更老。 PowerPC声称它在新的时候声名鹊起,对x86和68K都有很强的仿真支持。 ARM是32位,更现代,也很常见。 - RBerteig
我不认为它是x64,至少我没有这样写。我把它分别写成32b和64b。 - vol7ron


答案:


可能是因为x86系列已成为32位处理器的代名词已有相当长的一段时间,而x64特别是64位的名称,因为应用程序和操作系统已经过渡,现在有些软件应用程序需要64位指定才能运行(像一些VM软件)。

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


32
2017-10-06 14:53



x86来自8086,286,386,486,586等。它可以很容易地被“* 86” - gWaldo
而且因为x86起源于8086,所以我从来没有弄清楚为什么它总是与32位相关联。我记得8086是一个16位处理器,它使用双寄存器来启用32位内存寻址。当时英特尔远未成为该领域的领导者。 BTW @gWaldo,你遗漏了80186。 - John Gardeniers
巧合。来自维基百科,“因此,架构和物理芯片都是由一小群人快速开发的,并且使用与稍早的8085相同的基本微体系结构元素和物理实现技术(并且8086也将起作用)作为延续)。“还有8087和8089。 - Bart Silverstrim
是的,我遗漏了80186,因为我真的不记得它是否是一个已发布的产品(而且感觉懒得看起来......) - gWaldo
这个答案没有错,但老实说,丹尼尔应该是被接受的,因为它更加详细。 - Massimo


好吧,曾经有一款名为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短。


172
2017-10-06 15:23



+1给出了很好的解释。 - Gup3rSuR4c
AMD不会挑选,但要完全准确,AMD从未销售过64位芯片。 AMD推出的x64或x86_64是64位扩展,添加到英特尔创建的x86指令集中 - 因此x86_64与英特尔安腾(IA_64)相反,后者是真正的64位芯片,与x86指令集无法兼容。 - Jeremy Hajek
此外,我认为英特尔面临商标问题,因为他们只是使用数字,而且你不能对一系列数字进行商标注册,这就是为什么80586会成为奔腾,这是一个他们可以继续注册商标的名称。 - cdkMoose
澄清一下:AMD将其扩展称为AMD64,而英特尔称其为(他们从AMD授权)Intel64。存在一些细微差别(它们不是100%兼容),因此大多数OS供应商通常使用公共子集。在Windows 2008 DVD上,安装文件夹实际上称为AMD64(与32位上的I386相反)。我不知道x86_64来自哪里:来自AMD,因为它是x86的扩展,或者来自需要中性术语的Unix供应商。 - Michael Stum♦
@Jeremy Hajek:AMD64 / x86_64是真正的64位芯片设计,它的64位模式不是仿真而且没有性能影响(事实上,它的32位模式也不是仿真)。该芯片具有64位指令集和64位寄存器,使其成为64位芯片。我不知道你在哪里得到AMD从未推出64位芯片的印象。但事实并非如此,AMD从未推出过破坏与32位芯片兼容性的64位,就像英特尔与IA64一样。 - Lie Ryan


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


14
2017-10-06 14:52





从技术上讲,x86只是指一系列处理器和它们都使用的指令集。它实际上没有说明有关数据大小的具体内容。

x86最初是16位处理器(8086和8088处理器)的16位指令集,然后被扩展为32位处理器(80386和80486)的32位指令集,现在已经扩展到64位处理器的64位指令集。过去它被写成80x86以反映芯片型号中间的变化值,但是沿着线的某处,前面的80被丢弃,只剩下x86。

归咎于奔腾及其改变处理器命名和营销方式的后代,尽管使用英特尔x86指令集的所有新处理器仍被称为x86,i386或i686兼容(这意味着它们都使用原始8086的扩展)指令系统)。

x64真是个奇怪的人。 x86集的64位扩展名的第一个名称叫做x86-64。它后来被命名为AMD64(因为AMD最初提出的是64位扩展)。英特尔授权64位指令集并将其命名为EM64T。指令集和使用它们的处理器都被认为是x86。


3
2018-06-07 05:50



x86-64重新成为供应商中立的术语,包括AMD64和EM64T。领先的80总是出现在零件编号中,但在80186之后变得更容易,只说186与8086对386.奔腾从未正式称为586或80586的零件编号(cpu-world.com/sspec/Pentium.html); i586和i686条款只是基于CPUs报告自己的CPUID“系列”字段。 - Peter Cordes


x86和x64是cpu的名称 架构。 cpu架构不仅仅是每个寄存器的位数。

x64 take是名称,因为跳转到64位是 最大 从x86改变了体系结构,但这种跳跃远非如此 只要 更改。

x86的名字来自古老的8086处理器和系列,其中包括80286,80368,486等。当x86成为该架构的名称时,每个寄存器32位被认为不足以证明构建的合理性它成了名字。


3
2017-10-07 18:28





好, x64 从来没有真正来自指令集或芯片制造商。它最初来自Windows XP。第一个64位版本的Windows获得了标题 Windows XP x64。我猜这个词 x64 卡在那里。

x86 moniker来自32位指令集。所以 x86 处理器(没有领先的 80)运行相同的32位指令集(因此都是兼容的)。所以 x86 已经成为该集合的事实名称(因此32位)。

AMD的原始64位扩展名 x86 集被称为 AMD64。英特尔后来授权它,但即使仍然是64位的名称 x86 指令集通常是 AMD64

但主要是它的品牌区别。以下是一些不同的主要操作系统发行版调用每个64位的风格:

所以基本上,Linux似乎更喜欢 x86_64,BSD更喜欢 amd64 和其他人 x64...

但需要注意的是,它们对于营销目的而言都意味着同样的事情。他们确实意味着不同的东西(嗯, amd64 意味着不同的东西 x86_64 (前者是供应商特定的体系结构,后者是两个供应商体系结构的子集),但是 x86_64 === x64),但对于除程序员编写汇编或机器代码以外的任何人,它真的没有做出不同的...


2
2017-10-07 12:50



自IA64死亡以来,所有当前的x64实际上都是AMD-64。 - Overmind
@Overmind:x64和IA-64总是分开的东西。 IA-64与x86或x86-64完全无关。 (除非早期的IA-64实现包含x86核心,因为英特尔...) - Peter Cordes
对,那是正确的。但“它死了,吉姆”。 - Overmind