内存分页之32位分页

来源:互联网 发布:数据透视表 编辑:程序博客网 时间:2024/06/05 00:59

分页模式

Intel的64位处理器一共支持3种内存页模式:

  • 32 Bit Paging, 32位分页模式
  • PAE Paging, PAE分页模式
  • IA-32e Paging, IA-32e分页模式

    这本文中主要还是介绍第一种: 32位分页模式

地址类型

在搞清楚分页的概念之前,需要了解清楚以下几个地址的概念:

  • 物理地址
  • 线性地址
  • 虚拟地址

关于以上三种地址的具体区别和联系,可参见这里

控制寄存器(Control Registers)

你需要了解以下的几个控制寄存器:

  • CR0: 包含系统控制的标志位,用于控制系统操作模式和处理器状态
  • CR2: 用于保存页错误线性地址
  • CR3: 用于保存页表结构物理地址
  • CR4: 与架构扩展相关的标志位

CR registers

分页模式的切换

分页模式的切换主要是通过配置CR寄存器的一些bit来完成的,具体的状态图如下:
Paging Mode
其中:
PG代表CR0的bit31
PAE代表CR4的bit5
LME代表MSR IA32_EFER的LME bit

页面大小

32位分页模式支持两种页面大小

  • 4KB 页面
  • 4MB页面

4KB页面

4KB

关于4KB分页

  • Offset占12bits
  • PT 页表项占10bits
  • PD 页目录项占10bits

加起来刚好32bits。

4MB页面

4MB
关于4MB的分页,其实相比于4KB的分页要更简单些。取消了PT页表项,只有页目录项和offset。

0 0