CPU Architect · Technical / Simulator Design

TLB与Page Walk:翻译缓存、权限和跨核失效

TLB miss先walk,不等同page fault;PTE修改后还要撤销旧翻译。

题目重点:TLB miss先walk,不等同page fault;PTE修改后还要撤销旧翻译。

题意与假设

这道练习题保留了面经中值得训练的核心约束,并将需要澄清的条件单独列出。现场拿到变体时,先和面试官确认这些条件。

  • 训练多级页表、ASID/地址空间标识和权限检查;页表层数/页尺寸依ISA配置。
  • 不假设全部page walk都去DRAM,PTE也可能命中cache或page-walk cache。

解题路线

  1. TLB缓存VA页到PA页及权限等,hit仍检查访问类型;miss由walker读取多级PTE,找到有效叶后填TLB。页表无映射/权限错误才走fault路径,操作系统再按类型处理。
  2. 上下文切换可用ASID减少全刷,但ASID重用要避免旧翻译串空间。修改PTE后需按架构规则同步内存写、发送跨核shootdown并等ack,安全回收旧物理页不能先于相关核停止使用旧映射。
  3. 性能分析看TLB reach≈entries×pageSize、工作集页数、walker并发、walk层级cache命中与huge page碎片成本。不能把所有miss时延设为层数×DRAM而忽略缓存/并行。

手动走一遍

TLB miss但所有PTE有效且已在cache中,是一次正常walk,没有page fault。撤销某页后另核TLB仍有旧权限,不等待失效就复用该物理页可能导致旧访问写入新对象。

规模与取舍

L级walk基本最多L次依赖PTE读取,不含特殊结构;translation reach与entries×页尺寸相关。shootdown消息成本依共享地址空间的核数。

易错点与追问

容易失分的边界

  • 权限变化只更新PTE不invalidate,旧TLB权限仍可能有效。
  • 大页不免费:内部碎片、迁移/拆分和权限粒度都需讨论。

继续深挖

  • 并发walker合并同页miss如何限制资源且保留fault语义?
  • 如何用统计区分data-cache miss与translation bottleneck?

技术参考

✓已复制微信号!