您可能知道这些是访问和脏位。现在x86 PTE包含这些位。让我们说TLB也包含这些位。在TLB命中的情况下,如果访问或修改它们所指的页面帧,则这些位将由硬件设置。我的问题是这些位何时被硬件复制回PTE,以及如何完成(特别是在软件管理的TLB的情况下)?
PS - 我想知道这一点,因为我正在尝试设计和测试页面替换算法。
答案 0 :(得分:1)
x86 CPU没有软件管理的TLB。如果你想模拟这样的事情,你需要在正常的TLB之上实现它,就像你要将物理页面映射和取消映射到虚拟地址空间一样:拦截页面错误处理程序中的页面访问,修改PDE / PTE,根据需要使TLB条目无效,并在多处理器系统的情况下特别小心。
CPU将访问和脏位设置为1对软件是透明的,因此,一旦访问了页面,您应该立即看到更改。
有关详细信息,请参阅“英特尔®64和IA-32架构软件开发人员手册”。获取结合第1卷到第3卷的pdf,这样您就可以在一个地方获得所有必要的信息。