首页
社区
课程
招聘
[讨论]IA-32保护模式学习小结
发表于: 2009-10-9 22:53 8231

[讨论]IA-32保护模式学习小结

2009-10-9 22:53
8231
收藏
免费 7
支持
分享
最新回复 (3)
雪    币: 366
活跃值: (42)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
文字加图片排版好难,附件又传不上去,后面的没有办法发了
2009-10-10 02:55
0
雪    币: 366
活跃值: (42)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
终于传上去了,后续部分请看附件了,共同学习,请大家有空的时候帮忙指导下其中的遗留问题,谢谢
上传的附件:
2009-10-10 03:13
0
雪    币: 366
活跃值: (42)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
4
5 CPU页机制
IA-32 cpu支持分页机制,分页功能是可选功能。
5.1 三种分页模型
      IA-32 目前支持三种分页模型
      如果CR0寄存器的PG位=0,那么不启用分页功能。
      如果要启用分页模式,CR0.PE 必须等于1
        32位页模式
CR0.PG=1 , CR4.PAE=0
        PAE页模式
CR0.PG=1,CR4.PAE=1,IA-32_EFER.LME=0
        IA-32E页模式
CR0.PG=1,CR4.PAE=1,IA-32_EFER.LME=0
64位CPU使用
5.2 分页逻辑
    各种模式下的分页功能基于集中分层页结构(hierarchical paging structures)实现。
每种页结构的大小是4KB,其中包含一系列的逻辑记录。
    32 bit 页模式:每条记录大小4 byte,所以总共可以包含1024条记录
    PAE页模式,IA-32e:每条记录8 byte,所以总共包含512条记录
每条页结构中的记录包含了一个物理地址,它指向另外一个页结构或者映射一个具体的内存页(page frame)。
IA-32最多支持4层页结构逻辑,第一个页结构的地址通常保存在CR3中,第二个页结构由第一个页结构索引得出。因此,如果采用2级结构,32 bit的线性地址,从逻辑上可以拆成3部分 31:22 表示第一个页结构的索引,21:12 表示第二个页结构的索引,11:0 表示页内的偏移量。
关于各种模式下的页结构名称以及页结构中的记录名称可以参考下表:

由该表可以归纳出
   32bit 模式:用了2级数据结构PD----PT
   PAE 模式:用了3级数据结构 PDPT-PD-PT
   IA-32e 模式:用了 4级 数据结构: PML4T ----PDPT----PD----PT
第一级页结构都是由CR3保存其地址。  
5.2.1 32 bit页模式

5.2.2 PAE页模式
   暂时用不到,用到的时候再研究
5.2.3 IA-32e 页模式
   暂时用不到,用到的时候再研究
6.逻辑地址转换到物理地址
   在页功能没打开的时候,逻辑地址通过段逻辑转换到线性地址,直接映射到物理地址。
   在页功能打开的时候,线性地址经过页逻辑转换到物理地址。
上传的附件:
2009-10-10 23:08
0
游客
登录 | 注册 方可回帖
返回
//