You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TLB缺失时会发生什么?是否暂停指令流水线、触发异常?遍历页表需暂停吗?

TLB缺失的核心问题解答

发生TLB缺失时的基本情况

  • CPU尝试通过TLB完成虚拟地址到物理地址的翻译,但找不到对应页表项,此时必须从内存中的页表(可能是多级结构)里获取映射关系。
  • 处理逻辑分两类:硬件自动遍历页表(比如x86架构),或者触发内核介入的软件处理流程(比如部分RISC架构)。

指令流水线与异常触发的情况

  • 流水线通常会暂停:因为地址翻译没完成,后续的取数、执行等阶段无法推进,必须等物理地址确定后才能继续。
  • 异常触发分场景:
    • 硬件自动处理TLB缺失的架构:不会触发异常,硬件后台完成页表查找和TLB更新,之后直接恢复流水线。
    • 软件管理TLB的架构:会触发TLB缺失异常,内核执行处理程序手动遍历页表、更新TLB,完成后回到用户态继续执行。

遍历页表是否必然导致流水线暂停?

  • 不是必须的。现代高性能处理器有优化机制:
    • 支持乱序执行的CPU可以暂停当前依赖该地址的指令流,同时调度其他无关指令继续执行,减少整体停顿。
    • 但如果后续指令都依赖该地址翻译结果,或者处理器不支持乱序执行,那流水线就只能暂停到页表遍历完成。

内容的提问来源于stack exchange,提问作者harrySherlock

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 13:02:36