物理地址扩展需要36位地址总线吗?

时间:2013-04-28 09:51:55

标签: memory-management assembly x86 bus

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

2 个答案:

答案 0 :(得分:4)

  

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

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

  

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

问题不太清楚。

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

如果您在讨论PDE和PTE中的物理地址,则没有人阻止您使用小于2 32 的物理地址。

答案 1 :(得分:3)

PAE不需要36位(或更大)的物理地址。这允许软件使用PAE而无需关心物理地址大小(并且无需为某些CPU(例如Intel Atom)编写完全不同的分页代码)。这也意味着只有PAE(和长模式)支持的某些功能可以用在没有36位(或更大)物理地址总线的CPU上(具体来说,"没有执行& #34;或"执行禁用"功能)。

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