博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
物理地址扩展(PAE)分页机制
阅读量:7027 次
发布时间:2019-06-28

本文共 856 字,大约阅读时间需要 2 分钟。

常规分页机制32位地址线理论上可以寻址4GB的RAM地址空间,但是,大型的服务器需要大雨4GB的RAM来同时运行数以千计的进程,因此,Intel通过在处理器上把管脚数从32增加到36,以提高处理器的寻址能力,使其达到2^36=64GB,同时引入了一种新的分页机制PAE(Physical Address Extension,物理地址扩展)把32位线性地址转换为36位物理地址才能使用所增加的物理内存,通过设置CR4的第5位来开启对PAE的支持.引入PAE就是为了访问大于4GB的RAM,线性地址仍然是32位,而物理地址是36位.

64GB的RAM被分为2^24个页框,页表项的物理地址字段从20位扩展到24位,每个页表项必须包含12个标志位(固定)和24个物理地址位(36-12),共36位,因此,每个页表项须从32位(4Byte)扩展到64(8Byte)位(36位>32位,考虑到对齐,因此应将页表项扩大一倍到64位).这样就导致,一个4KB的页表可以包含512个表项而不是1024个表项.线性地址仍是32位,用其中的9位足以表示(2^9=512),由于页目录项与页表项具有同样的结构,高一级的页目录表中也仅能包含512个页表项,同样占用了32位线性地址中的9位,此时,线性地址剩余位数为:32位(总位数)-12位(页内偏移量)-9位(指示页表中的索引)-9位(指示页目录表中的索引)=2位,同时,Linux引入了一个页目录指针表(PDPT)的页表新级别,由4个64位表项构成,剩余的2位即用来指向PDPT中4个项中的一个.

下面4张图详细说明了4种情况下的页表结构(引自Wikipedia)

图1. 未启用PAE下的4K分页的页表结构

图2. 未启用PAE下的4M分页的页表结构

图3. 启用PAE下4K分页的页表结构

图4. 启用PAE下2M分页的页表结构

本文转自:

转载于:https://www.cnblogs.com/jason-lu/archive/2012/11/22/2783184.html

你可能感兴趣的文章
前端坑--表单篇
查看>>
P2P原理基础
查看>>
完成登录功能,用session记住用户名
查看>>
DBCP和C3P0使用--未完善
查看>>
JS常用方法(获取Class、获取元素样式、事件监听、cookie、ajax等)
查看>>
BZOJ 1084 最大子矩阵
查看>>
2018杭电多校第三场1007(凸包,极角排序)
查看>>
django中orm的简单操作
查看>>
Mybatis知识(1)
查看>>
php处理网站url编码及乱码问题
查看>>
快速入门:selenium自动化测试+ubuntu系统+php语言+firefox/chrome浏览器
查看>>
docx 转 doc
查看>>
DD DT DL标签
查看>>
用window.open函数页面传值
查看>>
SPOJ 10707 COT2 - Count on a tree II
查看>>
数据绑定——Vue.js
查看>>
Max Mex
查看>>
[CentOS] 7 不执行文件 /etc/rc.d/rc.local
查看>>
模态窗口的各个属性
查看>>
10.28 (上午) 开课一个月零二十四天 (数据访问)
查看>>