【问题标题】:WHy does 32-bit address has an addressalbe space of 4G bytes?为什么 32 位地址的地址空间为 4G 字节?
【发布时间】:2016-08-26 18:08:52
【问题描述】:

我看过其他答案,没有一个能说服我,大多数人只是说因为 2^32 = 4GB。

根据我的理解,32 位地址意味着每个字的长度为 32 位。因此最大的 32 位地址可以表示 4294967296,也就是说一个 32 位地址可以表示 4294967296 个字。

这 4294967296 个单词如何转换成 4GB....?

【问题讨论】:

    标签: memory


    【解决方案1】:

    传统的PC内存被分成字节,每个地址指向一个字节(不是一个字)。由于地址是 32 位,我们可以有 2^32 = 4294967296 个地址,或 4294967296 个字节 (B)。

    4294967296 B = 4194304 kB = 4096 MB = 4 GB,如果我们按 1024 倍计算。

    【讨论】:

    • 重点是每个地址都指向一个byte,而不是32位word
    • @MichaelLiu 是的。我现在已经明确地编辑了我的答案。谢谢。
    • 所以你是说...... 32位寻址意味着,它可以指向2^32字节。
    • 是的。每个地址指向一个字节,我们可以有 2^32 个地址,所以我们最终总共有 4 GB。
    【解决方案2】:

    虽然 CPU 在内部使用字,但它们仍然能够寻址内存中的单个字节。由于单个内存地址必须适合一个字以允许 CPU 处理它,因此在 32 位系统中您最多只能寻址 4 个GiB 内存。

    尽管有这些评论,但仍有一些方法可以在 32 位处理器上寻址更多内存。在 x86 CPU 中,这是在 Physical Address Extension (PAE) 绰号下处理的。通过使用超过 32 条地址线,您可以寻址更多内存。但是,由于 CPU 仍然只有 32 位字,因此每个页表仍然只能使用 4 GiB(这是实际应用程序使用的)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-11
      • 1970-01-01
      相关资源
      最近更新 更多