基本参数

:虚拟地址空间中的地址数量

Note

n 虚拟地址的长度是多少位
N 总的长度大小,实际虚拟地址可以放多少字节
:物理地址空间中的地址数量
[!note]

m 实际物理地址的长度是多少位
M 总的长度大小,内存的大小
:页的大小 (byte)
[!note]

P 每一页的大小,也就是VPO
比如说:一个页是4kb大小,也就是2^12次方的B也就是VPO=12

虚拟地址的组成部分

物理地址

不管虚拟还是物理的,页大小都是 4kb
Components of the physical address (PA)

PPNPPO
vpn 在列表条目中对应出来的值在物理地址中的位置数值上是 VPOO

PPO: Physical page offset (same as VPO)-物理页面偏移量
PPN: Physical page number-物理页号

Link to original

基于页表的地址翻译

  • 页表基址寄存器
    • 记录数组的起始地址
  • 然后根据虚拟地址的虚拟页号 VPN,相当于页表数组的下标了,来找到自己的页表条目
  • 然后看有效位是 0 还是 1
    • 为 0,执行缺页处理程序
    • 为 1,已经缓存了
  • 取出来的就是 PPN
  • 然后把虚拟地址的 VPO 抄过来就是 PPO
  • 组合出来的就是 PA
  • 然后就是第六章的访存那一套去读 cache

结合高速缓存和虚拟内存

利用 TLB 加速地址翻译

  • 页表条目 (PTEs) 恰巧缓存在 L1
    • PTE 可能被其他数据引用所驱逐
    • PTE 命中仍然需要1-2周期的延迟
  • 解决办法: Translation Lookaside Buffer (TLB)翻译后备缓冲器
    • MMU中一个小的相联存储设备
    • 实现虚拟页码向物理页码的映射
    • 对于页码数很少的页表可以完全包含在TLB中

内存系统示例


onedrive