Page Table

发布时间 2023-06-08 15:36:16作者: 可达达鸭

  • 学习AXI总线时涉及到4KB边界,网上搜到的资料是与Page有关,没有了解过相关知识,补习一下。

1. 虚拟内存地址和物理地址

  • 为什么CPU要使用虚拟内存地址映射物理地址
    • 便于管理,程序可以使用虚拟内存连续的地址空间管理物理内存中不相邻的地址空间;
    • 方便进程之间的隔离,提高安全性。每个进程有一段私有的,连续的,完整的内存空间。进程A代码无法更改进程B使用的物理内存;
    • 虚拟内存空间远大于实际物理内存大小,进程可以使用更多的内存空间。
      • 考虑当剩余物理内存变少时,内存管理器会将物理内存页(大小通常为4KB)保存到磁盘空间中,根据需要在物理内存和磁盘之间进行移动。
  • 完成虚拟内存到物理内存映射的硬件为:内存管理单元(Memory Management Unit,MMU)。
    • MMU 借助存放在内存中的页表来动态翻译虚拟地址。
  • TLB(Translation Lookaside Buffer)
    • 前面介绍虚拟地址和物理地址的映射关系存在页表中,常见的页表配置为4级。
      • 查找需要一级一级找下去,而4级的页表查找需要4次内存访问。
    • TLB实际上为一块高速缓存,缓存虚拟地址和其映射的物理地址。
      • 首先给TLB一个虚拟地址,确认是否命中cache,如果命中则可以直接获得物理地址;
      • 否则还是需要一级一级查找,查找到后再将虚拟地址和物理地址的映射关系缓存到TLB中。