Skip to content

虚拟存储器(硬件视角)

考情分析

虚存的硬件机制在组成原理和操作系统中都有考查,408 大题常以虚实地址转换结合 Cache 的形式出现,是跨章节综合题的重点。

虚拟地址与物理地址

程序使用虚拟地址(逻辑地址),硬件将其翻译为物理地址后才能访问主存。

虚拟地址结构(分页机制):

[虚页号(VPN) | 页内偏移(offset)]

页大小 =2,如 4 KB 页 → offset 12 位。

页表

页表存储在主存中,由操作系统管理。每个进程有一张页表。

页表项(PTE)包含:

字段说明
物理帧号(PFN)对应的主存物理帧地址
有效位(Present)该页是否在主存中
脏位(Dirty)该页是否被修改
访问位(Referenced)最近是否被访问(用于页面替换)
保护位读/写/执行权限

翻译过程

物理地址=PFN×页大小+offset

或等价于:物理帧号替换虚页号,offset 不变。

多级页表

32 位地址空间,4 KB 页,单级页表需要 220 个页表项,占 4 MB 内存(每个进程)。

两级页表:将 VPN 分为两段,页目录(L1)+ 页表(L2),按需分配,大幅节省空间。

64 位系统通常用 4 级页表(x86-64 用 PML4/PDPT/PD/PT)。

TLB(快表)

问题:每次地址翻译都要访问主存中的页表,访问主存一次翻译 + 一次数据,效率低下。

TLB(Translation Lookaside Buffer,快表/地址翻译缓存):Cache 化的页表,存放最近使用的页表项,容量小(64~1024项),速度极快(SRAM)。

TLB 通常采用全相联映射,每次查找并行比较所有项的 VPN 标记。

地址翻译流程(含 TLB)

虚拟地址

查 TLB(极快)

TLB 命中?
 是(TLB Hit)→ 直接得到物理地址
 否(TLB Miss)→ 查主存页表 → 得到物理地址 → 更新 TLB

用物理地址访问数据

查 Cache

Cache 命中?
 是 → 从 Cache 返回数据
 否 → 访问主存,装入 Cache

完整的 TLB + Cache + 主存 联合访问

访问一个数据,最多需要:

  1. 查 TLB(命中)→ 得到物理地址 或 查 TLB 未命中 → 访问主存页表 → 更新 TLB
  2. 查 Cache(命中)→ 得到数据 或 Cache 未命中 → 访问主存 → 装入 Cache

四种组合情况:

TLBCache访存次数性能
HitHit0(或极少)最快
HitMiss1(取数据)
MissHit1(取页表项)+ 0
MissMiss1(取页表项)+ 1(取数据)最慢

注意:TLB Miss 且 Cache Miss 时,实际上还可能有多次主存访问(多级页表)。

交互可视化

加载可视化中...

地址翻译计算例题

例1

32 位虚拟地址,4 KB 页(log24096=12 位 offset),16 位物理地址。

  • 虚拟地址:[19VPN | 12offset](实际高位 = 32-12 = 20位,但只用低20位)
  • 物理地址:[4PFN | 12offset](16-12 = 4位帧号)

若虚拟地址为 0x00003204(二进制:0...011 0010 0000 0100):

  • offset = 低12位 = 0x204 = 516
  • VPN = 高位 = 0x3 = 3

查页表,假设第 3 项的帧号为 0x6,则:

物理地址=0x6×4096+516=0x6204

考点清单

  • 虚拟地址 = VPN + offset,物理地址 = PFN + offset(offset 不变)
  • TLB 是页表的 Cache,全相联映射,用 VPN 作标记
  • TLB Hit + Cache Hit 是最理想情况(实际上大部分访问都是这种)
  • 多级页表按需分配,节省主存空间
  • 缺页(Valid=0)由操作系统处理,属于操作系统考点
  • 组成原理重点:TLB 结构、地址翻译硬件流程、与 Cache 的结合

真题练习

相关真题(10题)

2026Q19选择题2分

TLB组相联映射与页表同步后的表项判断

2024Q16选择题2分

Cache-主存与主存-外存层次结构对比

2024Q17选择题2分

TLB组相联映射中标记字段位数计算

2024Q18选择题2分

MMU地址转换过程中检测的事件类型

2022Q15选择题2分

虚拟地址到物理地址的转换

2020Q15选择题2分

TLB与Cache的实现与特性对比

2019Q14选择题2分

缺页异常的检测与处理流程

2015Q16选择题2分

TLB+Cache命中情况下的主存访问次数

2013Q16选择题2分

TLB全相联映射下的虚实地址转换

2010Q17选择题2分

TLB、Cache、Page三级命中/缺失的逻辑关系