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

时间:2012-01-15 12:19:41

标签: 32bit-64bit ram cpu-architecture

32位或64位机器是什么意思?

这是处理器架构...... 32位机器可以使用64位机器同时读取和写入32位数据....

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

2^32=4Gb(4Gigabit = 0.5 GigaByte)

那意味着4Gb ram?

如果我对64位机器采用相同的方法,那么我可以使用16ExbiBytes的内存..这可能吗?

我的观念是否合适?

7 个答案:

答案 0 :(得分:44)

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

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

是的,从理论上讲,64位架构可以处理1680万TB的内存,或者2 ^ 64字节。但我不相信当前流行的实现完全支持这一点;例如,AMD64架构只能处理高达1TB的内存。此外,您的操作系统还会对受支持的可寻址内存量进行限制。许多版本的Windows(特别是为家庭或其他非服务器使用而设计的版本)都是任意限制的。

答案 1 :(得分:20)

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

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

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

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

所以,不是:64位机器确实支持多达64位的物理寻址,大多数典型的64位软件应保持兼容未来的处理器支持直接处理那么多内存。

答案 2 :(得分:9)

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

在32位OS中,每个寄存器存储32位或4个字节。每个时钟周期处理32位(1字)信息。如果要从概念上访问特定的1字节,我们可以通过按位逻辑运算“提取”各个字节(例如字节0,字节1,字节2,字节3等)。

E.g。得到“dddddddd”,拿走 “aaaaaaaabbbbbbbbccccccccdddddddd” 和逻辑AND “00000000000000000000000011111111”。

答案 3 :(得分:5)

基本上32位架构可以满足您的预期4GB。 有一些技术允许处理器处理更多数据,如AWEPAE

答案 4 :(得分:4)

是的,在32位机器上,可用的最大内存量约为4GB。实际上,由于部分地址空间被保留,取决于操作系统可能会更少:例如,在Windows上,您只能使用3.5GB。

在64位上,您确实可以处理2 ^ 64字节的内存。并不是说你会拥有那些 - 但是很久以前,同样的事情就说需要超过640kb的记忆......

答案 5 :(得分:2)

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

32位或64位机器是什么意思?

  
    
      

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

    
  

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

请注意,32位操作系统是另一回事。您可以在64位计算机上运行32位操作系统。此外,您可以在64位操作系统上运行32位应用程序。如果您不理解其中的差异,请发布另一个问题。

所以处理器可以处理的最大RAM量是2 ^(数据总线的宽度,以位为单位),因为在处理器中接通了正确的寻址模式。

进一步注意,没有什么能阻止某人在数据总线和存储体之间引入多路复用,它将选择一个存储体然后寻址RAM(分两步)。这样你就可以解决更多内存问题。但这是不切实际的,也是非常低效的。

答案 6 :(得分:-4)

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

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

但是,它仍然不意味着x位操作系统能够处理2 ^ x GB内存。因为' B' in" GB"意味着"字节"而不是" bit"。 1个字节等于8位。

实际上32位系统甚至无法满足2 ^ 32/8 = 2 ^ 29 GB的内存空间,同时应该为操作系统保留一些内存。

它低于3 GB。