X86 cpu TLB-TLB已满->;下一个条目是未命中? 背景:

X86 cpu TLB-TLB已满->;下一个条目是未命中? 背景:,x86,x86-64,intel,cpu-architecture,tlb,X86,X86 64,Intel,Cpu Architecture,Tlb,x86_64,intel core 2 duo 我搜索了3个英特尔文档卷,可能没有找到正确的部分,因此提出了这个问题 一个tlb最多可以有4096个条目,这在我的书中是很多的。但在SMP系统中,这毕竟不算多。特别是如果由于标记位->几乎一直处于满状态,tlb未刷新 想象一下,在这种情况下,您的内存在4页表格中正确映射。假设您有超过4096个条目(我知道…),显然,这对于tlb来说太多了 我知道x86不会在tlb未命中时自动生成页面错误 问题: 我是否应该确保mmu将遍历页面表并自动替换其中一个条

x86_64,intel core 2 duo

我搜索了3个英特尔文档卷,可能没有找到正确的部分,因此提出了这个问题

一个tlb最多可以有4096个条目,这在我的书中是很多的。但在SMP系统中,这毕竟不算多。特别是如果由于标记位->几乎一直处于满状态,tlb未刷新

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

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

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

这是有道理的,因为在操作系统方面没有更多的事情要做,内存已经被映射了


谢谢

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


TLB未命中仅在页面不在内存中时才会导致页面错误。

感谢Craig确认我的假设:)它可能在TLB条目上使用pLRU位,请参阅除逐出机制/替换策略以外的详细信息。