对页相关概念以及TLB中存放内容进行概念解释和区分

1. 基本概念及区别

a. 虚拟页面(虚页、逻辑页)

  • 定义:虚拟页面是程序在其虚拟地址空间中使用的固定大小的内存块。每个进程都有自己的虚拟地址空间,虚拟页面是该空间中的基本单位。
  • 特点
    • 逻辑存在:虚拟页面在物理内存中未必存在,可能存储在磁盘上(例如交换区或文件)。
    • 地址独立:不同进程的虚拟页面可以有相同的虚拟页号,但它们映射到不同的物理页面。

b. 物理页面(实页、页框)

  • 定义:物理页面是实际存在于物理内存(RAM)中的固定大小的内存块。物理内存被划分为若干个页框,每个页框与一个物理页面对应。
  • 特点
    • 实际存在:物理页面是硬件内存的一部分,直接参与数据的读写操作。
    • 有限资源:物理内存容量有限,页框数量固定。

c. 虚页号(Virtual Page Number, VPN)

  • 定义:虚页号是虚拟地址中用于标识特定虚拟页面的部分。在虚拟地址中,地址通常被划分为页号和页内偏移量,页号即为虚页号。
  • 用途:用于查找页表中对应的页表项,以确定该虚拟页面映射到哪个物理页面。

d. 实页号(Physical Page Number, PPN)

  • 定义:实页号是物理地址中用于标识特定物理页面(页框)的部分。在物理地址中,同样划分为页号和页内偏移量,页号即为实页号。
  • 用途:用于构造物理地址,指向具体的物理内存位置。

e. 页表(Page Table)

  • 定义:页表是一个数据结构,用于存储虚拟页到物理页的映射关系。每个进程都有自己的页表。
  • 组成:页表由多个页表项(Page Table Entry, PTE)组成,每个页表项对应一个虚拟页面。

f. 页表项(Page Table Entry, PTE)

  • 定义:页表项是页表中的基本单元,包含了虚拟页面与物理页面之间的映射信息。
  • 内容
    • 实页号(PPN):指示该虚拟页映射到哪个物理页。
    • 有效位(Valid Bit):指示该映射是否有效。
    • 权限信息:如读、写、执行权限。
    • 其他控制位:如访问位、修改位等。

2. 虚拟页面与物理页面的关系

虚拟页面和物理页面通过页表进行映射。每当程序访问某个虚拟地址时,系统会执行以下步骤:

  1. 地址分割:将虚拟地址分割为虚页号(VPN)和页内偏移量。
  2. 页表查找:使用VPN在页表中查找对应的页表项(PTE)。
  3. 地址转换
    • 如果页表项有效,取出实页号(PPN)并与页内偏移量组合,形成物理地址。
    • 如果页表项无效,触发页缺失异常,系统将从磁盘中加载相应的物理页面。

3. TLB(Translation Lookaside Buffer)中的内容

a. TLB是什么?

TLB是一种高速缓存,位于CPU内部,用于加速虚拟地址到物理地址的转换过程。它存储最近使用的页表项,以减少访问页表的时间开销。

b. TLB中存储的内容

  • 页表项(PTE):TLB中的每一项基本上包含一个页表项的关键信息,通常包括虚页号(VPN)和对应的实页号(PPN),以及权限和状态位等。
  • 映射关系:TLB存储的是虚拟页号到物理页号的映射关系,而不是整个虚拟页面或物理页面的数据。

c. TLB的工作原理

  1. 地址查找

    • 当CPU需要访问某个虚拟地址时,首先在TLB中查找对应的VPN。
    • 如果找到(称为TLB命中),直接获取PPN,快速完成地址转换。
    • 如果未找到(称为TLB未命中),则需要访问页表,找到相应的PTE,并将其加载到TLB中以备下次使用。
  2. 性能提升

    • 由于TLB的查找速度远快于内存中页表的查找,TLB的存在显著提高了虚拟地址转换的效率。

4. 总结各概念的关系

  • 虚拟页面(虚页)是程序逻辑上使用的内存单位,通过虚页号(VPN)进行标识。
  • 物理页面(实页、页框)是实际内存中的存储单位,通过实页号(PPN)进行标识。
  • 页表记录了所有虚拟页面到物理页面的映射,每个映射由一个页表项(PTE)表示。
  • TLB缓存了部分页表项,存储的是虚页号到实页号的映射关系,以加快地址转换速度。

5. 示例说明

假设有以下情景:

  • 程序试图访问虚拟地址 0x1234
  • 系统将 0x1234 分割为 VPN 和页内偏移量。例如,假设页大小为 4KB(即12位偏移),则 VPN = 0x1,偏移 = 0x234
  • 系统首先在 TLB 中查找 VPN 0x1
    • TLB命中:假设 PPN = 0x5,则物理地址 = 0x5234
    • TLB未命中:系统查找页表,找到 PPN = 0x5,将此映射加载到 TLB,然后形成物理地址 0x5234

通过这个示例,可以看到虚拟地址是如何通过 VPN 和页表映射到物理地址的,以及 TLB 在其中的加速作用。

6. 进一步理解

  • 页表的层次结构:在实际系统中,页表可能采用多级结构(如两级页表、三级页表等)以节省内存空间。
  • 共享页:不同进程可以共享某些物理页面,通过页表的适当映射实现。
  • 页面置换算法:当物理内存不足时,系统需要决定哪些物理页面被换出到磁盘,这涉及到页面置换策略(如LRU、FIFO等)。
posted @ 2024-10-05 16:52  ~画风人~  阅读(81)  评论(0编辑  收藏  举报