gpt4 book ai didi

paging - 为什么使用 PAE 地址空间从 32 位增加到 36 位

转载 作者:行者123 更新时间:2023-12-01 23:47:30 25 4
gpt4 key购买 nike

IA-32 架构实现 PAE 以将其地址空间从 32 位增加到 36 位,这是通过将页表划分为三级方案来实现的。

页目录表 -> 页目录 -> 页表 -> 4-kb 页

地址空间从 32 位增加到 36 位是如何实现的?额外的 4 位从何而来?

最佳答案

物理地址空间可以是 36 位。在 IA-32 中,线性地址空间始终为 32 位。

它是通过增加页目录指针表项、页目录项和页表项的大小来实现的。它们都是 64 位的 PAE启用分页。实际上,使用 PAE,您最多可以寻址 52 位物理地址空间。

要存储 4KB 页面的 36 位物理地址,您实际上需要少于 36 位,因为您知道地址将以 12 个零 (2^12B=4KB) 结尾,因为地址是页面对齐的。所以你实际上需要 24 位来存储它。

在 32 位模式下存储它用于分页的问题是表条目只有 32 位,其中 12 位保留用于标志和内部 CPU 使用。所以你只剩下 20 位,这对于目的。您只能使用这20位来存储页面的32位物理地址。

但是有些 CPU 支持名为 PSE-36 的扩展它允许在启用 4M 页的 32 位分页模式下寻址高达 40 位的物理地址空间。分页结构是相同的(32 位条目),但条目中一些未使用的位用于存储物理地址的其余部分。(请注意,对于 4MB 页面,地址的最后 22 位以 0 结尾,因为 2^22=4MB,因此您需要比实际物理地址少 22 位来存储它)。

编辑:这是来自 IA-32,Intel64 Software developer manual 的图片.这是页面结构条目在 32 位分页模式下的样子 enter image description here

这是它们在 PAE 模式下的样子: enter image description here

关于paging - 为什么使用 PAE 地址空间从 32 位增加到 36 位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28307240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com