`
473687880
  • 浏览: 487139 次
文章分类
社区版块
存档分类
最新评论

内存管理:物理地址扩展(PAE)分页机制

 
阅读更多

摘要: Intel通过在处理器上把管脚数从32增加到36,以提高处理器的寻址能力,使其达到2^36=64GB,然而线性地址的位数仍然是32位,为此,需引入一种新的分页机制。从pentium pro处理器开始,intel引入一种PAE机制,另外一种叫做页大小扩展机制(PSE)在pentium III中引入,但是linux没有采用,本文不讨论它。


本文来源:内存管理:物理地址扩展(PAE)分页机制http://blog.csdn.net/trochiluses/article/details/12853027


64GBRAM被分为2^24个页框,页表项的物理地址字段从20位扩展到24位,每个页表项必须包含12个标志位(固定)和24个物理

地址位(36-12),共36位,因此,每个页表项须从32位扩展到64位(36>32位,考虑到对齐,因此应将页表项扩大一倍到64位)。


4KB的常规分页情况下,由于每个页表项大小为64为,因而,原有4K大小的页表中,仅能包含512个表项,这占用了32

位线性地址中的9位,同理,由于页目录项与页表项具有同样的结构,高一级的页目录表中也仅能包含512个页表项,同样占用

32位线性地址中的9位,此时,线性地址剩余位数为:32位(总位数)-12位(页内偏移量)-9位(指示页表中的索引)-9

(指示页目录表中的索引)=2位,同时,Linux引入了一个页目录指针表(PDPT)的页表新级别,由464位表项构成,剩余

2位即用来指向PDPT4个项中的一个。


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


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


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


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


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


线性地址的映射过程如下:

1)cr3:指向一个PDPT基地址

2)地址的31~30:确定PDPT项

3)地址的29~21:确定页目录项中的一个

此处,发生了分支:

A。如果页目录项的PS标志位等于0,那么页大小是4K

4)地址的20~12:确定页表的某一项

5)地址的11~0:确定偏移


B. 如果PS=1,启用大页

4)地址的20~0:确定2M页中的偏移量。

分享到:
评论

相关推荐

    X86 32位PAE地址划分

    X86平台 32位PAE地址划分资料:从上述宏定义可见,80386中只使用两级页表,物理上并没有PMD 作为对比,我们可以看下arch/x86/include/asm/pgtable-3level_types.h中的宏定义,从文件名可知,在这种模式下使用了三级...

    为32位系统开启4GB以上大内存的支持功能

    这样保存关闭,系统就打开了PAE,重新启动后,电脑属性的下方多了“物理地址扩展”几个字,虽然显示的还是3.25g内存,但实际上4g内存已经完全启用了。 在默认情况下 (不使用PAE), Windows XP (32bit)是可以识别4GB...

    Win7+Win8 32位系统大内存破解工具 PatchPAE

    自己通过测试整理好的Win7开启PAE工具说明,其中Win7旗舰版是亲测可用。Win8是在网上找的,发布者也说亲测可用。以前使用readyfor4gb工具破解Win7发现有些bug,主要是USB3.0接口无法使用,移动设备插上后没有任何...

    Linux内存地址映射

    //ftp.redhat.com/pub/redhat/linux/enterprise/5Server/en/os/SRPMS/),在IA-32架构CPU为基础,分析CPU架构下的地址映射过程及Linux内核中的实现,并给出一些工具(附源码)来验证整个地址映射过程(包括PAE机制下...

    32位Windows 7 支持超过 4GB 物理内存。

    32位 Vista/Windows 7 的内存容量许可限制;...破解Windows PAE 内核文件 ntkrnlpa.exe,绕过 ZwQueryLicenseValue API 函数的许可限制,使工作站版本 32位 x86 的 Vista/Windows 7 支持超过 4GB 物理内存。

    32位程序的内存扩冲方法.rar

    cmd的管理员模式 32位程序的内存扩冲 BCDEdit /set PAE forceenable Windows //单项程序使用3G内存,即应用程序或软件允许...关闭PAE:bcdedit /set pae forcedisable 关闭3GB:bcdedit /deltevalue IncreaseUserVa

    如何让32位的WIN2003服务器使用4G以上内存的方法

    PAE即物理地址扩展,Windows 2003 内存管理器使用 PAE 向程序提供更多的物理内存。程序本身并不知道实际的内存大小。所有的内存管理和 PAE 内存分配都由内存管理器处理,与运行的程序无关。 AWE即地址窗口化扩展,...

    pae:Prototipo Cartella PAE

    Create React App入门 该项目是通过。 可用脚本 在项目目录中,可以运行: yarn start 在开发模式下运行应用程序。 打开在浏览器中查看。 如果进行编辑,页面将重新加载。 您还将在控制台中看到任何棉绒错误。...

    win7内存虚拟硬盘

    BCDedit /set PAE ForceEnable 注:第一条命令是关闭DEP,可以不输入. 如果要还原,可以再次管理员身份运行: bcdedit /set nx optin 2.将 ram4g.reg导入注册表 3.启动ramdisk.exe, 选: 安装ramdisk 4.设置虚拟...

    XP 大内存 64G内存支持补丁(修正版,修正USB蓝屏)

    XP 大内存 64G内存支持补丁(修正版,修正USB蓝屏).

    WIN7系统下正确设置RAMDISK软件利用系统未识别内存

    WIN7系统下正确设置RAMDISK软件利用系统未识别内存

    Virtual PC在PAE模式下无法运行

    Virtual PC在PAE模式下无法运行解决办法

    XP下开启4G内存的方法+RAMDISK使用方法

    使用ramdisk会直接占用这3.25g的内存,而开启PAE后,用ramdisk设置768mb的内存作为虚拟硬盘,再调出任务管理器,会发现内存使用丝毫没有减少,也就是说,ramdisk调用的768mb内存是系统没有显示出来的768mb,还而言之...

    4G内存的诱惑——如何使用4GB(开启3GB和PAE).doc

    4G内存的诱惑——如何使用4GB(开启3GB和PAE).doc

    Debian-Mate:适用于非PAE台式机和笔记本电脑的Debian Wheezy 7.2 + Mate 1.6!-开源

    Debian Wheezy 7.2和Mate Desktop 1.6,但具有适用于非PAE Deskops和笔记本电脑的486内核。 它是一个实时版本,可以通过USB记忆棒运行,也可以从台式机安装到硬盘上。 该版本还包括remastersys,用于创建此实时版本...

    kernel-image-3.2.0-23-generic-pae-di_3.2.0-23.36_i386.udeb

    kernel-image-3.2.0-23-generic-pae-di_3.2.0-23.36_i386.udeb

    32位XP4G内存补丁 一键破解

    设备必须把他们的地址映射到4GB以下,以便兼容不支持PAE的windows版本。因此,如果系统安装了4GB的内存,那么其中一部分内存要么被禁用掉要么被BIOS重映射到4GB以上的地址空间。如果这部分内存被重映射,X64 Windows...

    内存映射 C++实例

    主要解决数据量很大的文件,直接全读进内存会导致内存资源不足,提出的一种解决方案!代码是自己写的,调试通过的

    WIN 7 4G 内存补丁

    本程序仅用于理论研究测试,...破解Windows PAE 内核文件 ntkrnlpa.exe,绕过 ZwQueryLicenseValue API 函数的许可限制,使工作站版本 32位 x86 的 Vista/Windows 7 支持超过 4GB 物理内存。 详细的内容请看原文: ...

    Tomcat内存溢出的三种情况及解决办法分析

    在2000/XP/2003的boot.ini里头有一个启动选项,好像是:/PAE /3G ,可以让用户进程最大内存扩充至3G,这时操作系统只能占用最多1G的虚存。那样应该可以让JVM创建更多的线程。 因此这种情况需要结合操作系统进行...

Global site tag (gtag.js) - Google Analytics