为什么使用PAE技术将地址空间从32位增加到36位?

3

IA-32架构采用PAE技术将其地址空间从32位增加到36位,这是通过将页表分成三级来实现的。

页面目录表 -> 页面目录 -> 页表 -> 4KB页面

32位到36位地址空间的增加如何实现?额外的4位来自哪里?

1个回答

3
物理地址空间可以达到36位。在IA-32中,线性地址空间始终为32位。
通过增加页目录指针表项、页目录项和页表项的大小来实现。启用PAE分页时,它们都是64位的。实际上,使用PAE可以寻址高达52位的物理地址空间。
要存储4KB页面的36位物理地址,实际上需要少于36位,因为您知道地址将以12个零结尾(2^12B = 4KB),因为地址已对齐。因此,您实际上只需要24位来存储它。
在32位模式下进行分页的问题在于,表项仅为32位,并且其中12位保留用于标志和内部CPU使用。因此,您只剩下20位可用于存储32位物理页面地址的目的。
一些CPU支持名为PSE-36的扩展,它允许在启用4M页面的32位分页模式下寻址物理地址空间高达40位。分页结构相同(32位条目),但条目中一些未使用的位用于存储其余的物理地址。(请注意,对于4MB页面,地址的最后22位以0结束,因为2^22 = 4MB,所以需要比实际物理地址少22位来存储它)。
编辑:这是来自IA-32,Intel64软件开发人员手册的图片。这是32位分页模式下页面结构条目的外观 enter image description here 这是PAE模式下的外观: enter image description here

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接