X86 TLB刷新和页面全局位

X86 TLB刷新和页面全局位,x86,paging,tlb,X86,Paging,Tlb,在“英特尔页表”结构中,有一个“页全局”位,表示 页表条目被全局使用。 据我所知,此全球条目不会刷新 由于覆盖CR3而导致TLB刷新期间。 我的问题是,我们是否可以假设,一旦设置了全局PTE条目,它就永远不会从TLB中刷新?您不能这样假设。刷新TLB条目的原因有很多,例如: TLB已满,需要缓存一个新条目,并将有问题的条目替换为新条目 有一条指令可以显式地使TLB条目无效,这也可以用于此类页面 在许多其他情况下,HW将完全冲洗TLB,以便出于CR3以外的原因保持一致性 简言之,您不能假设页面

在“英特尔页表”结构中,有一个“页全局”位,表示 页表条目被全局使用。 据我所知,此全球条目不会刷新 由于覆盖CR3而导致TLB刷新期间。
我的问题是,我们是否可以假设,一旦设置了全局PTE条目,它就永远不会从TLB中刷新?

您不能这样假设。刷新TLB条目的原因有很多,例如:

  • TLB已满,需要缓存一个新条目,并将有问题的条目替换为新条目
  • 有一条指令可以显式地使TLB条目无效,这也可以用于此类页面
  • 在许多其他情况下,HW将完全冲洗TLB,以便出于CR3以外的原因保持一致性

简言之,您不能假设页面翻译一旦在TLB中,它将始终保持在那里。

您不能假设。刷新TLB条目的原因有很多,例如:

  • TLB已满,需要缓存一个新条目,并将有问题的条目替换为新条目
  • 有一条指令可以显式地使TLB条目无效,这也可以用于此类页面
  • 在许多其他情况下,HW将完全冲洗TLB,以便出于CR3以外的原因保持一致性

简而言之,您不能假设页面翻译一旦在TLB中,它将始终保持在那里。

当TLB条目由于空间限制而被逐出时,我很确定它不会被称为TLB刷新。当TLB条目由于空间限制而被逐出时,我很确定它不会被称为TLB刷新。