【发布时间】:2012-11-13 00:32:31
【问题描述】:
我已经开始阅读有关 CPU 缓存的信息,我有两个问题:
1) 假设 CPU 收到页面错误并将控制权转移给内核处理程序。处理程序决定驱逐内存中标记为脏的帧。可以说 CPU 缓存用有效和修改的位写回。现在,此帧的内存内容已过时,缓存包含最新数据。内核如何强制缓存刷新?
2) 页表项 (PTE) 被标记为脏的方式如下: TLB 有一个修改位,当 CPU 修改页的内容时设置该位。该位在上下文切换时被复制回 PTE。如果我们得到一个页面错误,PTE 可能是非脏的,但 TLB 条目可能设置了修改的位(它还没有被复制回来)。这种情况如何解决?
【问题讨论】:
-
CPU 缓存的构建不会影响功能。如果它在没有它们的情况下工作,它必须与它们一起工作(除非存在竞争条件)。
-
@JanDvorak:我同意。但我想了解它是如何与他们一起工作的。
标签: caching memory-management tlb page-fault