【问题标题】:cpu TLB - tlb full -> next entry is a miss?cpu TLB - tlb full -> 下一个条目是错过了吗?
【发布时间】:2015-07-29 13:10:21
【问题描述】:

上下文:

x86_64,英特尔酷睿 2 双核。

我搜索了 3 个英特尔文档卷,可能错过了正确的部分,因此提出了问题。

一个 tlb 最多可以有 4096 个条目,这在我的书中很多。但在 SMP 系统中,这毕竟不是那么多。特别是如果由于标签位而没有刷新 tlb -> 几乎一直都是满的。

想象一下您的内存在 4 个页表中正确映射的情况。想象一下,您有超过 4096 个条目(我知道..),显然,这对于 tlb 来说太多了。

我知道 x86 不会在 tlb 未命中时自动生成页面错误。

问题:

我是否应该确保 mmu 将遍历页表并自动替换其中一个条目(因为它已经正确映射)?

这是有道理的,因为在操作系统方面没有什么可做的,内存已经被映射了。

谢谢

【问题讨论】:

标签: x86 x86-64 intel cpu-architecture tlb


【解决方案1】:

是的,在 TLB 未命中时,如果没有可用空间容纳新条目,MMU 将遍历页表并替换现有 TLB 条目。

如果页面不存在于内存中,TLB 未命中只会导致页面错误。

【讨论】:

  • 感谢 Craig 确认我的假设 :)
猜你喜欢
  • 2022-10-20
  • 2019-05-13
  • 2019-05-11
  • 2012-01-12
  • 2012-03-07
  • 2015-04-14
  • 2015-05-18
  • 2011-04-14
  • 2018-08-08
相关资源
最近更新 更多