物理地址扩展PAE

物理地址扩展 (PAE) X86 允许软件使用地址窗口扩展 (AWE) API 集并在具有 Intel Pentium Pro 或更高版本处理器的计算机上运行,而 4 GB 以上物理内存允许将更多物理内存映射为应用程序的虚拟地址空间。

    不使用 AWE API 集的应用程序也可以从 PAE X86 获益,因为操作系统使用更大的物理内存来减小页面,从而提高了性能。同样,这还使驻留多个应用程序的合并服务器受益。

    在计算机科学中,物理地址扩展或实体位置延伸(PAE)是指x86x86-64位处理器的一个特色,即如果操作系统提供适当支持,则可以在32位的系统中使用超过4GiB字节的实体内存。PAE为Intel Pentium Pro及以上级别的CPU(包括除了总线频率为400MHz的这个版本的奔腾M之外的所有新型号奔腾系列处理器)所支持,其他兼容的处理器,如速龙(Athlon)和AMD的较新型号的CPU也支持PAE。

    x86的处理器增加了额外的地址线以选择那些增加了的内存,所以实体内存的大小从32位增加到了36位。最大的实体内存由4GiB增加到了64GiB。

    32位的虚拟地址线性地址)则没有变,所以一般的应用软件可以继续使用地址为32位的指令;如果用平面内存模式的话,这些软件的地址空间也被限制为4GiB。操作系统用页表将这4GiB的地址空间映射到大小为64GiB的实体内存,而这个映射对各个进程一般是不一样的。这样一来,即使不能为单单一个程序所用,那些增加了的物理内存仍然可以发挥作用。

    对于需要超过4GiB内存的应用软件来说,除了一般的PAE支持,还需要操作系统提供另外的特殊的技术。在Windows上,这种技术叫做Address Windowing Extensions(AWE)。而在类Unix的系统上则有多种技术在使用,例如使用mmap()按需要把一部分文件映射到地址空间;但是,这还没有成为一个标准。

    Windows下启用物理地址扩展 (PAE) X86

    1.打开 Windows 资源管理器。

    2.在“工具”菜单上,单击“文件夹选项”。

    3.在“查看”选项卡上,单击“显示所有文件和文件夹”,清除“隐藏受保护的操作系统文件”复选框,然后单击“确定”。如果显示警告对话框,单击“是”以继续。

    4.在根文件夹(如 C:)下查找 Boot.ini 文件并删除它的只读属性。

    5.打开 Boot.ini 文件,然后将 /PAE 参数添加到 ARC 路径中,如以下 Windows Server 2003 Datacenter Edition 示例所示:

multi(0)disk(0)rdisk(0)partition(2)\%systemroot%="Windows Server 2003, Datacenter Edition" /PAE

    6.在“文件”菜单上,单击“保存”。

    7.还原 Boot.ini 文件的只读属性。

    8.为使更改生效,请重新启动计算机。

    Windows下禁用PAE模式方法

    右击桌面“我的电脑”属性,选择“高级”,再点击“启动与恢复”下面的“设置”,再点击框中的“编辑”键,此时会打开BOOT.INI文件,然后将文件的此行“

                 multi(0)disk(0)rdisk(0)partition(1)\WINDOWS=

                 "Microsoft Windows XP Professional" /noexecute=optin /fastdetect”

中的/noexecute=optin改成/execute 改完后保存该文件,然后重启电脑便OK。

 

    Linux下的情况——页表结构:

    在传统的32位的保护模式中,x86处理器使用一种两级的转换方案。在这种方案中,控制暂存器CR3指向一个长4KiB的页目录(Page Directory);页目录又分为1024个每个4KiB的页表(Page Table);最后页表又分为1024个每个长4KiB的

    启用PAE(通过设置控制暂存器CR4的第5位来启用)会改变上面的方案。默认情况下,每的大小是4KiB的。页表和页目录中的表项都从32位扩为64位(8字节)以使用附加的地址位。但是,页表和页目录的总大小不变。所以,页表和页目录现在都只有512个表项。因为这变成了原来方案的一半,所以另外的一个级加了进来:CR3现在指向的是页目录指针表,即一个包含4个页目录指针的表。

    页目录里的表项的第7位叫做PS(Page Size)。如果这个位设为1,则页目录的表项不再指向页表,而是指向一个2MiB的页。页目录里还有另外一个叫NX位元的标志位。它是第63位,表示No eXecute。因为页表项最高的12位,要么是这种标识位,要么是和操作系统相关的数据,所以最多可有52位在将来用于在252字节,即4pebibyte的物理内存中寻址。

    现在,x86架构只使用该52位中的36位。对于在长模式(long mode)中的x86-64处理器,PAE是必须的;其中使用了52位中的40位。

    CPU对PAE模式的支持可以通过CPUID标志PAE来识别。

posted @ 2012-08-17 23:35  CN.SnailRun  阅读(585)  评论(0编辑  收藏  举报