[转]X86的分页机制和相应系统结构

X86的分页机制和相应系统结构
  32bits的线性地址空间可以直接映射到物理地址空间,也可以间接映射到许多小块的物理空间(磁盘存储空间)上。这种间接映射方式就是分页机制。X86可用页大小为4KB、2MB和4MB(2MB和4MB只能在Pentium和Pentium Pro处理器中使用,本文中限定采用4KB页)。
  在分页机制,X86使用了四种数据结构:
  · 页目录项(PDE,Page Directory Entry):32bits结构,高20bits为页表基地址(物理地址),以4KB为递增单位,低12bits为页表属性,具体换算参见后面初始化部分;
  · 页目录(Page directory):存储页目录项,位于一页中,总共可容纳1024个页目录项;
  · 页表项(PTE,Page Table Entry):32bits结构,高20bits为页基地址(物理地址),低12bits为页属性;
  · 页表(Page table):存储页表项,位于一页中,总共可容纳1024个页表项;
  · 页(Page):4KB的连续地址空间;
  为了实现分页机制和提高地址转换的效率,X86提供和使用了如下的硬件结构:
  · 页标志位(PG,Page):该标志位为1,说明采用页机制;实际就是控制寄存器CR0的第31bit;
  · 页缓存/快表(TLBs,Translation Lookaside Buffers):存储最近使用的PDE和PTE,以提高地址转换的效率;
  · 页目录基地址寄存器(PDBR,Page Directory Base Register):用于存储页目录的基地址(物理地址),实际就是控制寄存器CR3;
  为了实现将线性地址映射到物理地址,X86将32bits线性地址解释为三部分:第31bit到第22bit为页目录中的偏移,用于索引页目录项(得到对应页表的基地址);第21bit到第12bit为页表中的偏移,用于索引页表项(得到对应页的基地址);第11bit到第0bit为页中的偏移。这样,通过两级索引和页中的偏移量,最后能正确得到线性地址对应的物理地址。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值