扩展地址
扩展地址,在计算机操作系统中,可以称之为物理地址扩展(Physical Address Extension,PAE),又释实体位置延伸,是x86处理器的一个功能,让中央处理器在32位操作系统下存取超过4GB的实体内存。计算机网络中,扩展地址是指对IPv4地址的扩展,主要原因是IPv4的地址匮乏。
基本信息
- 中文名
扩展地址
- 外文名
Extended Address
- 学科
计算机
- 定义
扩展计算机的寻址空间
- 有关术语
页表、IPV4
- 领域
操作系统、计算机网络
物理地址扩展
物理地址扩展(Physical Address Extension,缩写为PAE),又释实体位置延伸,是x86处理器的一个功能,让中央处理器在32位操作系统下存取超过4GB的实体内存。
PAE为IntelPentium Pro及以上级别的CPU(包括除了总线频率为400MHz的这个版本的奔腾M之外的所有新型号奔腾系列处理器)所支持,其他兼容的处理器,如速龙(Athlon)和AMD的较新型号的CPU也支持PAE。
x86的处理器增加了额外的地址线以选择那些增加了的内存,所以实体内存的大小从32位增加到了36位。最大的实体内存由4GB增加到了64GB。
32位的虚拟地址(线性地址)则没有变,所以一般的应用软件可以继续使用地址为32位的指令;如果用平面内存模式的话,这些软件的地址空间也被限制为4GB。操作系统用页表将这4GB的地址空间映射到大小为64GB的实体内存,而这个映射对各个进程一般是不一样的。这样一来,即使不能为单单一个程序所用,那些增加了的物理内存仍然可以发挥作用。
对于需要超过4GB内存的应用软件来说,除了一般的PAE支持,还需要操作系统提供另外的特殊的技术。在Windows上,这种技术叫做Address Windowing Extensions(AWE)。而在类Unix的系统上则有多种技术在使用,例如使用mmap()按需要把一部分文件映射到地址空间;但是,这还没有成为一个标准。
有关术语
页表结构
在传统的32位的保护模式中,x86处理器使用一种两级的转换方案。在这种方案中,控制暂存器CR3指向一个长4KiB的页目录(page directory);页目录又分为1024个每个4KB的页表(page table);最后页表又分为1024个每个长4KB的页。
启用PAE(通过设置控制暂存器CR4的第5位来启用)会改变上面的方案。默认情况下,每页的大小是4KB的。页表和页目录中的表项都从32位扩为64位(8字节)以使用附加的地址位。但是,页表和页目录的总大小不变。所以,页表和页目录现在都只有512个表项。因为这变成了原来方案的一半,所以另外的一个级加了进来:CR3现在指向的是页目录指针表,即一个包含4个页目录指针的表。
页目录里的表项的第7位叫做PS(Page Size)。如果这个位设为1,则页目录的表项不再指向页表,而是指向一个2MB的页。页目录里还有另外一个叫NX位元的标志位。它是第63位,表示No eXecute。因为页表项中最低的12位,要么是这种标识位,要么是和操作系统相关的数据,所以最多可有52位在将来用于在2字节,即4pebibyte的物理内存中寻址。
现在,x86架构只使用该52位中的36位。对于在长模式(long mode)中的x86-64处理器,PAE是必须的;其中AMD64使用了52位中的40位或48位1,而Intel64将最多使用46位。
CPU对PAE模式的支持可以通过CPUID标志PAE来识别。
地址窗口扩展
地址窗口扩展(Address Windowing Extensions,缩写AWE)是一项Microsoft Windows应用程序接口,它允许32位应用软件访问超出其虚拟地址空间限制(4GB)的物理内存。在地址窗口扩展下将应用程序的虚拟地址空间映射到物理内存的过程被称为“加窗”(windowing),并类似其他环境的覆盖概念。AWE对于需要操作极大数据集的数据密集型应用程序(例如数据库管理系统,科学和工程学软件)有益。
应用程序保留虚拟地址空间的区域或“窗口”,并分配物理内存的一个或多个区域。使用地址窗口扩展API,应用可以将虚拟窗口映射到任何一个物理区域。应用程序可以保留多个虚拟地址空间,并将其映射到物理内存的任何分配区域,只需虚拟地址空间中保留的字节数与物理内存区域相匹配。应用程序必须有“锁定内存页”的特权才能使用地址窗口扩展。
当保留内存超过4GB时,地址窗口扩展依赖于物理地址扩展的支持。地址窗口扩展在Windows 2000中作为一个取代PSE36方法的新API被引入。PSE36方法自Windows NT 4.0企业版引入,用于访问超过4GB内存,在Windows 2000中已不支持。第一批使用地址窗口扩展的应用程序是Oracle8.1.6和Microsoft SQL Server2000。
如果/3GB引导标识被使用以重新分配32位虚拟空间(2GB内核空间和2GB用户空间改为3GB用户空间),地址窗口扩展将只能访问16GB物理内存。此限制是因为只有1GB内存保留给内核,而没有足够的内存用于映射超过16GB内存的页表项。通过地址窗口扩展可寻址的最大内存量也因Windows许可方案而额外限制。例如,Windows 2000 Advanced Server限制为8GB,Windows 2000 Data Center Server则支持64GB。
2004年在Dr. Dobb's Journal发布的一篇文章称注意到使用地址窗口扩展分配的内存将不会被写入页面文件,并建议AWE区域因此可作为保护敏感的应用程序数据(如加密密钥)的一种方式。