TLB和PTE中的引用和修改位

时间:2013-01-20 21:04:52

标签: x86 virtual-memory tlb

您可能知道这些是访问和脏位。现在x86 PTE包含这些位。让我们说TLB也包含这些位。在TLB命中的情况下,如果访问或修改它们所指的页面帧,则这些位将由硬件设置。我的问题是这些位何时被硬件复制回PTE,以及如何完成(特别是在软件管理的TLB的情况下)?

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

1 个答案:

答案 0 :(得分:1)

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

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

有关详细信息,请参阅“英特尔®64和IA-32架构软件开发人员手册”。获取结合第1卷到第3卷的pdf,这样您就可以在一个地方获得所有必要的信息。