【问题标题】:Is 36-bit address bus needed for Physical Address Extension?物理地址扩展是否需要 36 位地址总线?
【发布时间】:2013-04-28 09:51:54
【问题描述】:

32 位处理器上的物理地址扩展是否需要 36 位地址总线? 如果我使用位于具有 36 位地址的页面中的 32 位地址会发生什么?

【问题讨论】:

    标签: memory-management assembly x86 bus


    【解决方案1】:

    32 位处理器上的物理地址扩展是否需要 36 位地址总线?

    显然,在具有 32 位地址总线的 CPU 上启用或支持 PAE 实际上没有任何好处,因为您将无法访问 232 及以上物理地址的任何内容。

    如果我使用位于具有 36 位地址的页面中的 32 位地址会发生什么?

    这个问题不太清楚。

    启用 PAE 后,虚拟地址保持 32 位。页表中的物理地址扩展到 36 位(通常,最低 12 位不存储在 PDE 和 PTE 中,它们被视为 0,因为 4KB 页面自然对齐在 4KB 地址边界上)。

    如果您谈论的是 PDE 和 PTE 中的物理地址,没有人会阻止您在其中使用小于 232 的物理地址。

    【讨论】:

      【解决方案2】:

      PAE 不需要 36 位(或更大)的物理地址。这允许软件在不关心物理地址大小的情况下使用 PAE(并且无需为某些 CPU 编写完全不同的分页代码 - 例如 Intel Atom)。这也意味着只有 PAE(和长模式)支持的某些功能可以在没有 36 位(或更大)物理地址总线的 CPU 上使用(特别是“不执行”或“执行禁用”) " 特征)。

      重要的是不要混淆虚拟地址(软件使用的地址)和物理地址(CPU、硬件等使用的地址)。 PAE 对虚拟地址没有影响,所有虚拟地址仍然只有 32 位。如果你访问一个 32 位(虚拟)地址的东西,CPU 会使用查找表(页表、页目录和页目录指针表)将 32 位虚拟地址转换为 36 位物理地址。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-11
        • 2013-11-19
        • 1970-01-01
        • 1970-01-01
        • 2014-03-14
        • 1970-01-01
        • 2016-09-06
        相关资源
        最近更新 更多