| 项目 | 值 |
|---|---|
| 核心概念 | TLB 快表 —— 页表的高速缓存 |
| 关键公式 / 性质 | $\text{物理地址} = \text{PFN} + \text{Offset}$ |
| 考试频率 | ⭐⭐⭐⭐ |
TLB(Translation Lookaside Buffer,旁路转换缓存 / 快表)是页表的高速缓存,存储最近使用的虚拟页号到物理页框号的映射。
| 有效位 | 虚拟页号 VPN | PFN | 标志 | ASID | 其他控制位 |
|---|---|---|---|---|---|
| 1 | 0x123 | 0x456 | R/W | 0x1 | … |
| 1 | 0x789 | 0xABC | R | 0x1 | … |
| 0 | … | … | … | … | … |
VPN | Offset。完整流程可在下方 交互动画 中逐步演示。
| 场景 | 访存次数 |
|---|---|
| TLB 命中 | 1 次(TLB 查找 + 内存访问) |
| TLB 未命中,页表有效 | $1+n$ 次($n$ 级页表遍历 + 内存访问) |
| 缺页 | 磁盘 I/O + $n+1$ 次 |
VPN → [组索引] → 在该组内并行比较所有路
| 策略 | 说明 | 优缺点 |
|---|---|---|
| 全部刷新 | 切换时清空 TLB | 简单但新进程冷启动 |
| ASID 标记 | 每个条目标记进程 ID | 不用刷新,但需额外硬件 |
| 部分刷新 | 只刷新全局页 | 折中方案 |
假设 TLB 命中率 99%,TLB 访问 1 周期,内存访问 100 周期(四级页表):
TLB 命中率 99% 可将访存时间降低约 80%。
| 类型 | 实现 | 特点 |
|---|---|---|
| 硬 TLB | 硬件实现 | 速度快,但条目数有限 |
| 软 TLB | 软件维护 | 灵活,但速度慢 |
现代 x86 使用硬 TLB,MIPS 等 RISC 架构支持软 TLB。
↑ 以上为站内 HTML 相对链接(纯网页可浏览);本页右上「在 Obsidian 中打开」跳回源笔记。