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

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

有人知道它的历史还是可以指导我很好的信息来源?

评论

一直想知道此+1是出于无意识的好奇心!

我只是问自己这个早晨!

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

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

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

#1 楼

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

换句话说,由于某种原因,营销比技术更多。

评论


x86来自8086、286、386、486、586等。它很容易就是“ * 86”

– gWaldo
10-10-6在20:10

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

–约翰·加迪尼尔(John Gardeniers)
2010-10-7 11:09



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

–巴特·银线
2010-10-7 11:54

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

– gWaldo
2010-10-7 12:23

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

–马西莫
15年7月3日,0:34

#2 楼

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

后来,Intel创建并销售了8086、8088、80186和80286芯片,所有这些芯片均具有16位架构,因此需要创建32位芯片以与其他同类产品竞争。为了利用其现有地位,它使新芯片能够运行为上述芯片制造的软件。自然地,英特尔称这种新芯片为80386。那时,有很多计算机在使用各种版本的英特尔芯片,而且还有与英特尔兼容的非英特尔芯片。因此人们开始将它们称为80x86。

过一会儿,英特尔推出了新芯片,但它决定放弃80,因此将其变成486而不是80486。同样,人们也放弃了“ 80x86”前面的“ 80”,并称其为x86。

现在,我很确定有人会说英特尔在某时某时将其芯片标为x86,他们确实做到了,但我不在乎。

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

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

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

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

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

评论


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

–杰里米·哈耶克(Jeremy Hajek)
2010-10-6 15:47

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

– cdkMoose
10-10-6在16:47

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

–Michael Stum♦
10-10-6在19:39

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

– Lie Ryan
2010-10-6 21:10



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

– Peter Cordes
18年9月4日在19:54

#3 楼

来自Wikipedia:
术语x86指的是基于Intel 8086 CPU的指令集体系结构系列。

#4 楼

好吧,x64从未真正来自指令集或芯片制造商。它最初来自Windows XP。 Windows的第一个64位版本的名称为Windows XP x64。而且我猜想q4​​312079q这个词就是从那里开始的。

x64的绰号来自32位指令集。因此,所有x86处理器(没有领先的x86)都运行相同的32位指令集(因此都是兼容的)。因此,80已成为该设备集(事实上是32位)的事实上的名称。

AMD在x86设备集上最初的64位扩展名为x86。英特尔后来获得了许可,但甚至仍然是64位AMD64指令集的名称通常是x86

但是主要是品牌区别。以下是一些不同的主要操作系统发行版将每个64位版本称为:



Ubuntu-amd64

Centos-x86_64

OpenSUSE-x86_64

FreeBSD-amd64

OpenBSD-amd64

NetBSD-amd64

Solaris-x64

Windows Server-x64

因此,基本上,似乎Linux更喜欢AMD64,BSD更喜欢x86_64,而其他amd64 ...

需要注意的一件大事是,出于营销目的,它们都具有相同的含义。巧妙地讲,它们的含义不同(嗯,x64的含义与amd64的含义不同(前者是特定于供应商的体系结构,后者是两个供应商体系结构的子集),但是x86_64 === x86_64),但对于程序员除外在汇编或机器代码中,它实际上并没有什么不同...

评论


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

–注意
17-10-23在6:38

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

– Peter Cordes
18年9月4日在20:15

对,那是正确的。但是“吉姆死了,吉姆”。

–注意
18/09/10'下午5:38

#5 楼

从技术上讲,x86只是指一系列处理器及其全部使用的指令集。实际上,它并没有说出关于数据大小的任何具体信息。

x86最初是针对16位处理器(8086和8088处理器)的16位指令集,然后扩展为32位处理器。位指令集用于32位处理器(80386和80486),现在已扩展为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“家族”字段。

– Peter Cordes
18-09-4在20:11

#6 楼

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

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

x86的名称来自古老的8086处理器和家族,其中包括80286、80368、486等。在x86成为体系结构的名称时,每个寄存器32位并没有被认为是足够重要的功能,足以证明将其构建为名称。