0

有很多问题决定了指针的大小。基本上,根据经验,您可以说这是处理器架构,

x86 -> 4 字节指针

x64 -> 8 字节指针

我也看到这里有些人说是系统总线负责它,但其他人否认。假设架构告诉我指针的大小是多少。

要寻址 4GB 的 RAM,您需要 4,294,967,296 个映射,大小为 4 字节的指针可以寻址 4,294,967,296 个内存位置。

要寻址 8GB 的​​ RAM,您需要 8,589,934,592 个映射,并且大小为 4 字节的指针无法寻址所有可能的值。所以这就是为什么我不能在 x86 架构上拥有超过 4GB 的 RAM?

4

1 回答 1

2

RAM 的数量不受架构(32 位或 64 位)的限制。架构仅决定操作系统和在其上运行的程序一次可以寻址多少内存。在 32 位机器上,即具有 32 位宽内存总线的机器上,操作系统和程序只能“看到”4 GB 的内存。但这并不意味着只有 4 GB 的 RAM。如果制造商提供了它,您可以拥有 16 GB 或 4x4 GB 的 RAM。在这种情况下,将有 2 条“隐藏”地址线,并且还会有硬编码逻辑来决定这两条线的级别,从而选择任何可用的 4 GB RAM -00 01 10 11. 这些“隐藏”的地址位不被软件层使用,因此对于这些层,它们只能使用一个 4 字节的指针。这些“隐藏”地址行的数量决定了您可以扩展多少 RAM。

这只是一个例子。这取决于供应商,他们决定如何提供额外的 RAM。

于 2013-03-11T17:57:20.983 回答