我正在阅读英特尔系统开发人员手册Vol3A第4-43页。它讨论了为了刷新TLB而执行的推荐无效。推荐的失效之一是:
如果软件修改了引用另一个的分页结构条目 分页结构,它可以使用以下方法之一 根据修改后的翻译类型和数量 条目:
- 使用每个页码对线性地址执行INVLPG 翻译将使用该条目。但是,如果没有页面 使用该条目的数字具有翻译(例如,因为 在由引用的分页结构中的所有条目中,P标志为0 修改后的条目), 至少需要执行一次INVLPG
我不明白的是大胆的部分。如果使用该条目的页码都没有翻译,我们为什么要拨打一次INVLPG? (TLB中不应该有与该条目相对应的任何条目)。
即使我们确实称它的操作数是什么?
提前致谢
答案 0 :(得分:2)
如果使用该条目的页码都没有翻译原因 我们应该拨打一次INVLPG吗? (不应该是TLB中的任何条目 对应该条目。)
所有新条目都没有翻译,但可能会缓存P
为1
的旧条目。我读它的方式,如果不是旧的那个P=1
,那么你就不需要使用INVLPG
。
即使我们确实称它的操作数是什么?
选择引用修改后的结构的任何地址。