它指的是处理器架构... 32位机器可以同时读写32位数据,同样适用于64位机器...
32位机器能够访问的最大内存容量是多少?
它是
2^32=4Gb
(4千兆比特=0.5千兆字节)这意味着4Gb的内存?
如果我也以同样的方式考虑64位机器,那么我可以拥有一块16艾比字节的内存吗?这可能吗?
我的理解正确吗?
2^32=4Gb
(4千兆比特=0.5千兆字节)是的,32位架构在寻址时最多只能访问4GB内存。根据操作系统的不同,这个数字甚至可能因为保留地址空间而更低。
通过使用PAE(物理地址扩展),可以消除某些32位架构的这一限制,但必须要有处理器支持它。PAE使处理器能够访问超过4GB内存,但并不改变单个进程可用的虚拟地址空间大小——每个进程仍然被限制在最大4GB地址空间内。
是的,理论上64位架构可以访问16.8百万TB内存,即2^64字节。但我认为当前流行的实现并没有完全支持这一点;例如,AMD64架构只能访问最多1TB内存。此外,您的操作系统还会对支持和可寻址内存量施加限制。许多Windows版本(特别是针对家庭或其他非服务器用途的版本)都有任意限制。
adr=00...01
是第一个地址,并且指向RAM上的第一个8位块:谁在存储adr
? - tomasyanyA[35:3]#
的描述(尽管它到达A35
应该已经是一个非常明显的指示)。 - Jerry Coffin回到一个非常基本的概念,我们为我们的内存地址有32位。这相当于2^32个独特地址组合。按照惯例,每个地址指向1个字节的数据。因此,我们最多可以访问总共2^32个字节的数据。
在32位操作系统中,每个寄存器存储32位或4个字节。每个时钟周期处理32位(1个字)信息。如果要访问特定的1个字节,我们可以通过位逻辑运算“提取”各个字节(例如字节0、字节1、字节2、字节3等)。
例如,要获取“dddddddd”,请执行以下操作: 将“aaaaaaaabbbbbbbbccccccccdddddddd”和“00000000000000000000000011111111”进行逻辑与操作。
是的,在32位计算机上可用的最大内存量约为4GB。实际上,根据操作系统的不同,由于地址空间的某些部分被保留,可能会更少:例如,在Windows上,您只能使用3.5GB。
在64位上,确实可以寻址2 ^ 64字节的内存。尽管你永远不会拥有那么多 - 但很久以前也曾说过永远不需要超过640kb的内存......
基本上,“x位机器”的术语并不取决于您的机器。这就是为什么我们不需要更改处理器或其他硬件,以便从32位系统迁移到64位系统(反之亦然)。
32位和64位代表运行在您的机器上的操作系统的寻址能力。
然而,这仍然不意味着x位操作系统能够寻址2^x GB内存。因为“GB”中的“B”表示“字节”,而不是“位”。1个字节等于8个位。
实际上,32位系统甚至无法寻址2^32/8 = 2^29 GB的内存空间,因为应该有一些内存被保留给操作系统。
这大约是3 GB以下的东西。