为什么INVLPG应至少被称为一次

时间:2016-02-21 12:31:34

标签: assembly x86 paging intel tlb

我正在阅读英特尔系统开发人员手册Vol3A第4-43页。它讨论了为了刷新TLB而执行的推荐无效。推荐的失效之一是:

  

如果软件修改了引用另一个的分页结构条目   分页结构,它可以使用以下方法之一   根据修改后的翻译类型和数量   条目:

     

- 使用每个页码对线性地址执行INVLPG   翻译将使用该条目。但是,如果没有页面   使用该条目的数字具有翻译(例如,因为   在由引用的分页结构中的所有条目中,P标志为0   修改后的条目), 至少需要执行一次INVLPG

我不明白的是大胆的部分。如果使用该条目的页码都没有翻译,我们为什么要拨打一次INVLPG? (TLB中不应该有与该条目相对应的任何条目)。

即使我们确实称它的操作数是什么?

提前致谢

1 个答案:

答案 0 :(得分:2)

  

如果使用该条目的页码都没有翻译原因   我们应该拨打一次INVLPG吗? (不应该是TLB中的任何条目   对应该条目。)

所有新条目都没有翻译,但可能会缓存P1的旧条目。我读它的方式,如果不是旧的那个P=1,那么你就不需要使用INVLPG

  

即使我们确实称它的操作数是什么?

选择引用修改后的结构的任何地址。