这是我进行任何研究之前的第一个逻辑:
由于它是一台32位机器,因此将有2 ^ 32个空间(约为40亿) 但它们是有点的,所以我必须把它转换成字节。 (~45亿/ 8) 然后我得到~5亿字节,或~500MB。我真的很好奇为什么它不是500 MB,所以我发现了这个:
"根据定义,32位处理器使用32位来指代 每个字节的内存位置。 2 ^ 32 = 42亿,这意味着一个 32位长的内存地址只能指42亿 独特的位置(即4 GB)。" (original source)
但是我再次感到困惑,因为每个内存地址都是 32位长,其中有42亿个。每个存储器地址是4个字节,而不是1个字节。所以它将是4.2千兆* 4字节= 16.8 GB。
很明显,我在逻辑中遗漏了一些东西。有任何澄清吗?答案 0 :(得分:1)
在典型的现代机器中,每个字节都可以单独寻址。因此,4G地址意味着4G字节。
答案 1 :(得分:1)
您将地址的长度与位于该地址的内存大小混淆。他们非常无关。
到目前为止,32位机器最常见的选择是在2 ^ 32个唯一地址中组织存储器,每个地址保持8位(1字节)。为了唯一地寻址每个位,因此需要32 + 3位。实际上,内存以128或256位块(8或16字节)加载到高速缓存中,因此物理上只需要32-3或32-4地址线。那么为什么我们仍然使用32位这个术语呢?这是因为地址寄存器在物理上是32位大。有#34;加载字节"说明但通常不会#34;加载位"。 (如果有,你通常有8个)
答案 2 :(得分:0)
32位CPU意味着它可以访问2 ^ 32 = 42,94,967,296个内存位置(每个内存位置长1个字节)。如果我们将4294967296字节的内存除以1024,我们得到4194304 KB的内存。此外,如果我们再次除以1024,我们得到4096 MB的内存,即4 GB。