2

您可能知道这些为 Accessed 和 Dirty 位。现在 x86 PTE包含这些位。假设 TLB 也包含这些位。在 TLB 命中的情况下,如果它们所引用的页框被访问或修改,这些位将由硬件设置。我的问题是这些位何时被硬件复制回 PTE 以及这究竟是如何完成的(尤其是在软件管理 TLB 的情况下)?

PS - 我想知道这一点,因为我正在尝试设计和测试页面替换算法。

4

1 回答 1

1

x86 CPU 没有软件管理的 TLB。如果你想模拟这样的事情,你需要在普通 TLB 之上实现它,就像你将物理页面映射和取消映射到虚拟地址空间一样:在页面错误处理程序中拦截页面访问,修改 PDE/ PTE 在必要时使 TLB 条目无效,并在多处理器系统的情况下特别小心。

CPU 将访问位和脏位设置为 1 对软件是透明的,因此,一旦访问了页面,您应该立即看到更改。

有关详细信息,请参阅“英特尔® 64 和 IA-32 架构软件开发人员手册”。获取包含第 1 卷至第 3 卷的 pdf,以便您将所有必要的信息集中在一处。

于 2013-01-20T22:31:01.267 回答