我已经开始阅读有关 CPU 缓存的信息,我有两个问题:
1) 假设 CPU 收到页面错误并将控制权转移给内核处理程序。处理程序决定驱逐内存中标记为脏的帧。可以说 CPU 缓存用有效和修改的位写回。现在,此帧的内存内容已过时,缓存包含最新数据。内核如何强制缓存刷新?
2)页表条目(PTE)被标记为脏的方式如下:TLB有一个修改位,当CPU修改页面内容时设置。该位在上下文切换时被复制回 PTE。如果我们得到一个页面错误,PTE 可能是非脏的,但 TLB 条目可能设置了修改的位(它还没有被复制回来)。这种情况如何解决?