Answers:
您的问题是特定于体系结构的。x64本质上是对x86体系结构的扩展。它支持64位地址空间。它提供了一些新的指令和新的寄存器。
您可以在x64机器上运行32位x86 Windows。请注意,您不能在Itanium 64位系统上执行此操作。
64位处理器可以同时运行32和64个操作系统(至少x64可以)。一个32位处理器只能在本地运行32个。
区别主要在于指针/引用的大小。在64位计算机上,您可以在64位地址范围内引用地址(因此可以为您提供2 ^ 64字节的内存)。在32位上,您只能寻址2 ^ 32字节(= 4 GB)。现在,如果您看一下当前的计算机,显而易见的是为什么世界正在迁移到64位:32位不再能轻松访问所有RAM。
在x64(AMD / Intel)上,您还有64位的其他优点。CPU具有更多的寄存器,因此允许更有效的代码。
在其他体系结构上,64位和32位之间的差异不太明显。例如,Nintendo 64(还记得吗?)是一台64位计算机,但其大多数代码是32位。因此,在这种情况下,64位可作为一种营销技巧。
当前接受的答案通常是正确的,但不是特别正确。确实没有一个单独的东西叫做“ 32位CPU”或“ 64位CPU”,它的描述只涉及CPU体系结构的一小部分,尤其是它引用的数字。 CPU和存储器之间的地址选择线的数量,即可用于存储器操作的所谓地址空间。
在过去的日子里,当人们习惯坐下来编织(包装)处理器和内存之间的电线时,您可能不得不使用32或(理论上,因为当时不存在) CPU和内存控制器之间的64根导线,用于指定您要访问的内存地址。例如,假设我们有一个2位内存体系结构:发送00将选择地址0,01将选择地址1,10将选择地址2,而11将选择地址3。这2位给我们2 ^ 2个字节RAM(4个字节)。
如果您使用的是32位CPU,并且在CPU与内存控制器之间增加了32条连线,那么您就可以神奇地支持更多的内存,那么现在您将拥有一个可以运行32位的“ 64位CPU”代码或64位代码。这是什么意思,这是怎么发生的?好吧,让我们从这个答案的前半部分中取出2位CPU,并添加另一条线,将其变成3位CPU,将我们的RAM从4字节变为2 ^ 3或8字节。
现有的“ 2字节”代码将运行,并设置最后两根导线的值,如上述(00-11)所示。默认情况下,我们会将多余的连接设置为零,因此实际上在运行2字节代码时,当它选择00时,实际上选择的是000,而当它选择11时,实际上选择的是011。
现在,程序员希望编写“本机” 3字节代码,并编写其软件以利用额外的地址空间。她告诉CPU她知道自己在做什么,并且将手动控制新的多余电线。她的软件知道多余的连线,并正确发送000-111,从而可以完全访问此新CPU架构支持的内存范围。
但这不是必须的。实际上,事情通常不会这样发生。首次引入64位CPU(有很多)时,它们都采用了全新的体系结构/设计。他们不仅增加了32条线,然后说:“这是一个可以在32位或64位模式下使用的64位CPU,”但是他们说:“这是我们的新CPU,它只需要使用这种全新的机器语言进行编程,就可以采用这种全新的方式运行,可以解决比以往的x86 / i386 32位CPU优雅得多的各种问题,并且它是本机64位体系结构。 ”。
这就是英特尔Itanium的故事,由于它沉没的程度很大,现在被称为“ Itanic”。它本应在新的64位时代中预示着,这是值得一看的。可变长度指令,巨大的高速缓存,64位地址空间,大量寄存器,超级令人兴奋,超级酷炫,而且很难说服所有人重新编译或重写20年的旧代码。那是AMD和Intel真正竞争的时候,AMD曾提出过一个绝妙的主意:“让我们忘记所有这些'解决世界上所有问题'的业务,只需要在i386上增加32根线,并制造32位兼容的64位处理器即可。位CPU”和x86_64 CPU体系结构诞生了。
实际上,如果您查看主要操作系统(Linux,Windows,BSD等)的内核名称和源代码,就会发现它们对AMD64 CPU和AMD64体系结构的引用乱七八糟。AMD提出了一项制胜法宝,使所有人都可以切换到64位世界,同时保持与32位应用程序的兼容性,从而使32位OS可以在64位硬件甚至32位应用程序上运行。可以在64位硬件上的64位OS上运行。英特尔迟早采用其“英特尔EM64T”架构(与AMD64基本相同),紧随其后,而x86_64胜出,而Itanic以及MIPS64和ALPHA64等其他产品在台式机/服务器市场上再也没有出现。
tl; dr amd64 aka x86_64 CPU设计为与32位和64位内核和代码兼容,但是大多数64位CPU肯定不是以相同的方式向后兼容。一个32位CPU最多可以访问4GiB的内存,而一个64位CPU可以访问惊人的16个EiB(16×1024 ^ 6字节,是4GiB的40 亿倍的内存)。
32位和64位OS都可以在64位处理器上运行,但是64位OS可以使用64位处理器的全部功能(更大的寄存器,更多的指令)-简而言之,它可以同时执行更多的工作。32位处理器仅支持32位Windows操作系统。
32 and 64 bit OS can run on a 64 bit processor
通常是不正确的