32位机器可以访问多less内存?

什么是32位或64位机器?

这是处理器体系结构… 32位机器可以用64位机器以相同的方式读取和写入32位数据…。

什么是32位机器可以访问的最大内存?

它是2^32=4Gb (4Gigabit = 0.5千兆字节)

那意味着4Gb ram?

如果我考虑一个64位机器相同的方式,那么我可以有一个16ExbiBytes公羊..这是可能的?

我的观念是对的吗?

是的,32位体系结构仅限于寻址最大4 GB的内存。 根据操作系统的不同,由于保留的地址空间,这个数字可以进一步减less。

通过使用PAE(物理地址扩展) ,可以在某些32位体系结构中删除此限制,但必须由处理器支持。 PAE使处理器能够访问超过4 GB的内存,但不会改变单个进程可用的虚拟地址空间量 – 每个进程仍将被限制为最大4 GB的地址空间。

是的,理论上64位体系结构可以处理1680万兆字节的内存或2 ^ 64字节。 但我不相信当前stream行的实现完全支持这个; 例如,AMD64架构只能处理高达1TB的内存。 此外,您的操作系统也会限制所支持的可寻址内存的数量。 Windows的许多版本(特别是为家庭或其他非服务器使用而devise的版本)是任意限制的。

32位或64位机器通常指的是外部可见(“架构”)通用整数寄存器的大小。

这与硬件的构build没有什么关系。 例如,让我们考虑(长期过时的)Intel Pentium Pro。 它通常被认为是一个“32位”的处理器,尽pipe它支持高达36位的物理地址,具有64位宽的数据总线,并且所有支持的操作数types的内部计算都在一组寄存器中执行因此它们是80位宽,以支持最大的浮点types)。

至less在英特尔处理器的情况下,即使较长的物理寻址长期可用,在32位处理器上的任何一个进程的地址空间内直接可见的最大量的存储器也被限制为4千兆字节32位寻址)。 36位物理地址允许寻址高达64千兆字节的RAM,但只有4千兆字节可以在任何给定时间直接看到。

对64位机器的更改主要涉及更改对用户可见的内容(或汇编语言级别的代码)。 再一次,你所看到的与真实的东西很less相同。 例如,大多数64位代码将指针/地​​址视为64位,但实际的处理器不支持那么大的地址。 目前的CPU支持48位虚拟地址,并且(至less据我注意到)最多可以有40位的物理地址。 另一方面,它们是在未来devise的,当更大的内存变得实用时,它们可以将物理地址扩展到48位,而不会影响软件。 即使他们增加了48位虚拟寻址,在一个典型的情况下,它只会影响less量的操作系统内核(正常代码不受影响,因为它已经假定地址是64位)。

所以,不,64位机器并不支持高达64位的物理地址, 但是大多数典型的64位软件应该与未来支持直接寻址RAM的处理器保持兼容。

基本上32位体系结构可以按照您的预期寻址4GB。 有一些技术允许处理器处理更多的数据,如AWE或PAE 。

是的,在32位机器上,最大可用内存量大约为4GB。 实际上,根据操作系统的不同,这可能是因为地址空间的一部分被保留了:在Windows上,你只能使用3.5GB。

在64位上,您确实可以寻址2 ^ 64个字节的内存。 并不是说你永远都不会拥有这些东西 – 但是很久以前,同样的东西也曾经被说过需要超过640kb的内存。

回到一个非常基本的想法,我们有32位的内存地址。 这可以解决2 ^ 32个独特的地址组合。 按照惯例,每个地址指向1个字节的数据。 因此,我们最多可以访问总共2 ^ 32个字节的数据。

在32位操作系统中,每个寄存器存储32位或4个字节。 每个时钟周期处理32位(1个字)的信息。 如果你想访问一个特定的1字节,在概念上,我们可以通过按位逻辑操作来“抽取”单个字节(例如字节0,字节1,字节2,字节3等)。

例如,要获得“dddddddd”,采取“aaaaaaaaaababbbbbbbccccccccdddddddd”和与“00000000000000000000000011111111”的逻辑与。

没有你的概念是不正确的。 要正确设置,您需要回答您错误地回答的问题:

什么是32位或64位机器?

这个问题的答案是“在CPU中是重要的是32位或64位”。 所以问题是什么是重要的东西? 很多人说数据总线的宽度决定了机器是32位还是64位。 但是最新的32位处理器都没有32位或64位宽的数据总线。 大多数32位系统至less有36位支持更多的RAM。 大多数64位处理器的数据总线不超过48bit,因为这已经是很多内存了。

所以根据我的说法,一个32位或者64位的机器是由计算中使用的通用寄存器的大小或者计算机使用的“自然字大小”决定的。

请注意,32位操作系统是不同的事情。 您可以在64位计算机上运行32位操作系统。 另外,您可以在64位操作系统上运行32位应用程序。 如果你不了解差异,请发表另一个问题。

因此,处理器可以寻址的RAM的最大数量是2 ^(数据总线的位宽),因为在处理器中正确的寻址模式是开启的。

进一步说明,没有任何东西阻止某人在数据总线和内存条之间引入一个多路复用,这将select一个存储区,然后寻址RAM(分两步)。 这样你可以解决更多的RAM。 但这是不切实际的,而且效率很低。

基本上,术语“x位机器”不依赖于你的机器。 这就是为什么我们不需要改变我们的处理器或其他硬件,以便从32位系统迁移到64位系统(反之亦然)。

32位和64位代表您的机器上运行的操作系统的寻址能力。

但是,这并不意味着x位操作系统能够处理2 ^ x GB内存。 因为“GB”中的“B”表示“字节”而不是“位”。 1个字节等于8个比特。

实际上一个32位的系统甚至不能处理2 ^ 32/8 = 2 ^ 29GB的内存空间,而应该为操作系统保留一些内存。

这是低于3 GB的东西。