分页机制

分页机制使用两级转换表,第一级叫做页目录(Page Directory),存储在一个物理页中.大小为4KB,每个表项4字节,  共有1024个表项(Page Directory Entry).

每个表项对应第二级的一个页表(Page Table),每个页表也有1024项(Page Table Entry),每个表项对应一个物理页。

页目录 顾名思义就是页目录项的组合(1024个页目录项PDE),一个页目录项PDE是4Bety。 整个页目录占据一个4k物理页。 项可以理解为Entry

页表 顾名思义就是页表项组合(1024个页表项PTE),一个页表项PTE是4字节,一个PTE对应一个真实物理页,一页是4K。     Entry可以理解为项

1M为1024*1024       4K为4*1024          4M为4*1024*1024=4K*1024 ,4M为一个页表的大小。

1023=03FFH,1024=0400H,4096=1000H

 一页为4K,即1000H,所以页首地址都为XXXXX000H的格式,高20位XXXXXH为页码

                                                                                                                                                                      (cr3)            得到页目录基址

运行转换时,先是有寄存器cr3指定的页目录中根据线性地址的高10位(图中的Dir)得到页表地址,                   (高10位)       得到页表基址

然后在页表中根据线性地址的第12到21位(图中的Table)得到物理页首地址,                                                   (中10位)       得到页基址

将这个首地址加上线性地址低12位(图中的Offset)便得到了物理地址。                                                          (低12位)       得到物理地址

参考上图:

Page Directory是4k大小,Page Table是4k大小, 一个Page是4K大小,Physical Address Space为:1024*1024*4K=4G

Entry可以理解为项,一个Entry为4字节。 1024个Entry就是4k

 

 

参见图片:PDE,PTE都是4字节

P存在位:表示当前条目所指向的页或页表是否在物理内存中.P=0,表示页不在内存中,如果处理器试图访问此页会
             产生页异常(page-fault exception,#PF);P=1表示页在内存中

  R/W指定一个页或者一组页的读写权限.R/W=0表示只读,R/W=1表示可读写

         此位与U/S位和cr0中的WP相互作用

   U/S指定一个页或者一组页的特权级。此位与R/W和中cr0中的WP相互作用

         U/S=0,表示系统级别,如果CPL=0,1,2就在此级别  

         U/S=1,表示系统级别,如果CPL=3就在此级别

         如果cr0的WP=0,即便用户级页面的R/W=0,系统级程序仍然具备写权限.

                      WP=1,即便用户级页面的R/W=0,系统级程序也不能写入只读页.         

    PWT用于控制对单个页或者页表的缓冲策略。PWT=0使用Write-back缓冲策略
           PWT=1使用Write-through缓冲策略

           cr0的CD(Cache-Disable)位被设置时会被忽略

    PCD控制对单个页或者页表的缓冲PCD=0时,页或页表可以被缓冲PCD=1,不能

           cr0的CD(Cache-Disable)位被设置时会被忽略   

    A指示页或页表是否被访问。在页或页表刚被加载到物理内存中时被内存管理程序清0,处理器会在第一次

      访问此页或页面时设置此位.而且处理器不会自动清除此位。只有软件能清除它

    D指示页或页表是否被写入。在页或页表刚被加载到物理内存中时被内存管理程序清0,处理器会在第一次

      访问此页或页面时设置此位.而且处理器不会自动清除此位。只有软件能清除它

      A位和D位都是被内存管理程序用来管理页和页表从物理内存中换入换出的

    PS位决定页大小PS=0页大小为4KB,PDE指向页表

    PAT选择PAT(Page Attribute Table)条目。

    G指示全局页。如果此位被设置.同时cr4中的PGE位被设置。那么此页的页表和页目录条目不会再TLB中变得无效

    处理器会将最近常用的页目录和页表保存在一个叫做TLB(Translation Lookasied buffer)的缓冲区中.加速访问

posted on 2011-04-24 20:31  wanghj_dz  阅读(1733)  评论(0编辑  收藏  举报

导航