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


97

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

我猜想这与386和486年代有关,那时32位处理器全部以86结尾,但是肯定有一些处理器没有以86结尾并且仍然是32位吗?

有人知道这件事的历史吗,或者可以引导我获得良好的信息来源?

谢谢


7
一直想知道这个+1是出于无意识的好奇心!
加布里埃尔·吉马良斯

我只是问自己这个早上!
肖恩·霍亚特

9
我认为整个术语不是x64,而是x86_64
Kedare

3
恕我直言,“ x86”并不意味着(而且从未意味着)任何通用的32位体系结构。Daniel在下面的回答给出了历史。还有许多其他的32位处理器与80386同时(或更早),并且今天仍有相当多的产品还处于市场中。例如,68000系列(在原始Macintosh中使用)比8086年代更早。PowerPC之所以声名when起,是因为它对x86和68K都提供了强大的仿真支持。ARM是32位的,更现代,并且也很常见。
RBerteig

我不认为它是x64,至少我不这样写。我分别将其写为32b和64b。
vol7ron

Answers:


34

可能是因为x86系列在相当长的一段时间内已成为32位处理器的代名词,而x64特别是在转换应用程序和操作系统时专门为64位指定的名称,现在有些软件应用程序要求将64位指定才能运行(例如某些VM软件)。

换句话说,原因是营销多于技术。



6
而且由于x86起源于8086,所以我一直无法弄清为什么它总是与32位关联。我记得8086是16位处理器,它使用双寄存器来启用32位存储器寻址。在那些日子里,英特尔远未成为该领域的领导者。顺便说一句@gWaldo,您省去了80186。–
John

巧合。摘自Wikipedia:“因此,架构和物理芯片都是由一小部分人开发的,并且使用了与稍旧的8085相同的基本微体系结构元素和物理实现技术(并且8086也可以运行)作为延续)。” 还有一个8087和8089.
巴特Silverstrim

是的,我遗漏了80186,因为老实说我不记得它是否是已发布的产品(并且懒得查找它……)
gWaldo 2010年

1
这个答案没有错,但是老实说,我认为丹尼尔的答案应该被接受,因为它的详细程度更高。
Massimo 2015年

189

嗯,曾经有一种名为8086的芯片,其价格更便宜的版本为8088,该芯片曾用于称为IBM PC的个人计算机。制造了该芯片的改进版本并命名为80186,尽管这不是一个非常流行的版本。但是,随后制造了改进的改进版本,称为80286。现在,这是一种非常流行的芯片,特别是因为它被用于称为IBM PC AT的计算机中。

后来,创建并销售了8086、8088、80186和80286芯片的所有英特尔公司都具有16位架构,因此看到了创建32位芯片以与其他同类产品竞争的需求。为了利用其现有的地位,它使新芯片能够运行为上述芯片制造的软件。英特尔自然将这种新芯片称为80386。

到那时,很多计算机都在使用各种版本的Intel芯片,并且还存在与Intel兼容的非Intel芯片。因此人们开始将它们称为80x86。

不久之后,英特尔发布了新芯片,但它决定放弃80,因此将其改为486而不是80486。同样,人们也从“ 80x86”的前面放下“ 80”,并将其称为x86 。

现在,我很确定有人会说英特尔在某时某时将其芯片x86贴上了商标,但我不在乎。

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

那么,一旦Intel最终采用64位,它称之为新架构是什么?对!IA64!:-)可以这么说,它将x86追溯地重命名为IA32。我是说IA32,只有IA64与x86不兼容,所以每个人都忽略了它。

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

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

因此,在回答您的问题时,因为x64比x86-64短。


10
AMD从来没有销售过64位芯片。AMD推出的x64或x86_64是Intel创建的x86指令集的64位扩展名-因此x86_64与Intel的Itanium(IA_64)相反,后者是与x86指令集不兼容的真正的64位芯片。
Jeremy Hajek

6
另外,我认为英特尔面临商标问题,因为它们只是使用数字,而不能将数字序列注册为商标,这就是为什么80586变成奔腾(Pentium)的原由,他们可以继续为商标注册。
cdkMoose

3
需要说明的是:AMD将其扩展称为AMD64,英特尔将其称为扩展(由AMD许可)。有一些细微的差异(它们不是100%兼容的),因此大多数OS供应商通常使用通用子集。在Windows 2008 DVD上,安装文件夹实际上称为AMD64(与32位I386相对)。我不知道x86_64的来源:来自AMD,因为它是对x86的扩展,或者来自想要中立术语的Unix供应商。
Michael Stum

20
@Jeremy Hajek:AMD64 / x86_64是真正的64位芯片设计,它的64位模式不是仿真,并且不影响性能(实际上,它的32位模式也不是仿真)。该芯片具有64位指令集和64位寄存器,这使其成为64位芯片。我不知道您从哪里得到AMD从未销售过64位芯片的印象。不过,确实如此,AMD从未销售过像Intel的IA64那样破坏64位与32位芯片兼容性的产品。
Lie Ryan

1
x64仅在Windows / Microsoft术语中使用。GNU / Linux将架构称为x86-64或amd64。(并调用32位x86 i386)。在Windows世界中,x86只是(或至少在大多数情况下)专门指32位x86。大多数谈论CPU的硬件人员都将x86理解为与8086向后兼容的任何CPU,无论其工作在哪种模式下(通常为64位长模式,有时在64位内核下为32位兼容模式)。我说“ x86具有有效的释放/获取无锁原子”,我并不排除64位。
彼得·科德斯


3

从技术上讲,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。


x86-64不再是供应商中立的术语,包括AMD64和EM64T。领先的80总是在零件号中出现,但是在80186之后,只需说186 vs. 8086 VS. 386就变得更加容易。Pentium的零件号从未被正式称为586或80586(cpu-world.com/sspec/Pentium。 html); i586和i686术语仅基于CPU如何报告自身的CPUID“家族”字段。
彼得·科德斯

3

x86和x64是cpu 体系结构的名称。除了每个寄存器的位数之外,cpu体系结构还有更多。

x64之所以如此,是因为从x86 跳转到64位是体系结构中最大的更改,但是跳转远非唯一的更改。

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


2

好吧,x64从来没有真正来自指令集或芯片制造商。它最初来自Windows XP。Windows的第一个64位版本被授予标题Windows XP x64。我猜这个词x64就此停滞不前。

x86绰号来自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),但除了程序员谁在组装或机器写编码确实没有什么不同...


1
自IA64淘汰以来,当前所有x64实际上都是AMD-64。
忘了

@Overmind:x64和IA-64总是分开的。IA-64与x86或x86-64完全无关。(除了早期的IA-64实施出于兼容性原因包括x86内核,因为英特尔...)
Peter Cordes

对,那是正确的。但是“吉姆死了,吉姆”。
主宰
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.