PSE36
PSE品牌处理器
PSE36是一款处理器。
产品介绍
Page Size Extension(PSE)技术的作用是在IA32架构中,实现大于传统的4KB的页面。这一技术在最初的Pentium处理器中被引入(注:386、486时代的机器就没有这项功能了),在这类处理器上,可以通过CPUID指令的返回结果,知道处理器是否支持PSE。
实现
PSE技术允许4MB的页面于传统的4KB物理页面共存。
在传统的IA32架构中,x86利用两级页表物理内存进行管理,并实现线性地址物理地址的映射。页目录中存储了1024个页表地址,而每个页表里又存储了1024个物理页面的首地址,CR3中存放了页目录的物理地址。而如果使用PSE技术的话(需要设置CR4中的第4位),页目录中的表项就拥有了一个新的标识(第7位,又称为PS位,Page Size),如果它的PS=1的话,这个页目录表项就指向了一个4MB的大物理页面,而不是象原来那样指向一个页表。同时,使用PSE技术的页目录项实际上只使用了传统IA32页目录结构中20个地址位的高10位(后面的32-10=22位在寻址的时候全部填0),所以,它指向的是一个4MB对齐的物理页面!
注意,要使用4MB的大页面,这里的前提是:
1) 需要Pentium以上的CPU;
2) CR4中的PSE位(第4位)为1;
3) 页目录项的PS位(第7位)为1。
PSE-36
PSE-36是继PSE技术后推出的扩展技术,在Pentium III处理器以后进入x86的历史。跟PSE一样,为了判断CPU是否支持PSE-36技术,操作系统也可以使用CPUID指令来进行。
我们知道,PSE技术能够在IA32的基础上,让x86机器管理4MB的物理页面,而且,就改动的规模来说,PSE技术仍然使用了IA32的页表到页目录的结构,这是因为无论采用PSE与否,机器仍然还是32位的。可是,如果把地址总线扩展到36位呢?
我们知道,IA32采用的是固定的页目录到页表的结构,页目录和页表的每个位几乎都有特定的含义。如果地址总线扩展增加了4位(成为36位),为了满足寻址(即使这个时候用户程序仍然使用32位的逻辑地址)和内存管理的需要,最直接的方法是对已有的两层地址映射结构进行扩展,成为3层结构(这种做法我们将在PAE中讲述)。可是,这样,操作系统必须作出比较大的修改,才能够对36位地址进行支持。有没有能够保留IA32两层地址映射,同时又能实现到36位物理地址(64GB)映射的方法呢?PSE-36就是为这一特殊需要而制定的。
我们知道,在传统IA32中,无论是页目录项还是页表项,都是用高20位来存储它所指向的页表或物理页面的物理地址的。而在使用PSE寻址4MB大页面的时候,页目录项只使用了其中的高10位来存储物理页面的地址,而在PSE-36中,则使用了高14位,这样,使用PSE-36的页目录项的寻址达到了14+22=36位,从而能够管理到64GB的物理地址空间。
传统IA32、采用PSE以及PSE-36技术的页目录项如下表所示:
我们发现,PSE-36技术的显著特点,在于虽然该技术能够使得4KB大小的物理页面和4MB的物理页面共存,但是,4KB的物理页面只能在4GB以下的内存中存在,而4GB以上的内存只能用4MB的大页面进行管理。
讨论
在Pentium时代,为了在x86中管理更多的内存,Intel将传统的IA32架构进行扩展,推出了PSE以及PSE-36技术,将物理页扩展到4MB。相比于传统的4KB的物理页面,这些技术虽然满足了应用的大内存需求,然而,4KB到4MB的跨度显得大了一点,页面大了,就容易导致内部碎片的问题,而导致内存的浪费。特别是PSE-36技术的使用,如果所有线性地址都成了36位,则系统内所有的物理页面都将是4MB,这样将导致非常大的内存浪费。
参考资料
最新修订时间:2022-07-10 21:55
目录
概述
产品介绍
实现
参考资料