当操作系统选择它所在的页面进行驱逐时,尚未写回的脏缓存行(假设写回缓存)会发生什么情况。In other words what happens to the cache lines of the page, when a page is chosen for eviction from main memory.
一般的假设是,当页面从内存中被逐出时,它已经足够冷而不会被缓存。但是,这会在更大的缓存中造成问题吗?如果说我们有足够的缓存行来容纳每页的 1 行?
当操作系统选择它所在的页面进行驱逐时,尚未写回的脏缓存行(假设写回缓存)会发生什么情况。In other words what happens to the cache lines of the page, when a page is chosen for eviction from main memory.
一般的假设是,当页面从内存中被逐出时,它已经足够冷而不会被缓存。但是,这会在更大的缓存中造成问题吗?如果说我们有足够的缓存行来容纳每页的 1 行?
缓存行不会直接发生任何事情。在操作系统中,我们必须始终假设最坏的可能性,即使是小缓存也可能面临您提出的方案。但是,操作系统不需要直接对缓存行做任何事情,正常的分页过程会处理这种情况。
当操作系统决定驱逐一个页面时,它将首先将其内容写入磁盘(因为处理器会将页表条目标记为脏,表示该页面已被写入)。在此过程中,操作系统将从包括脏缓存行在内的整个页面中读取值,因此它们将被写回,至少写入磁盘。
接下来作为逐出页面的一部分,操作系统将使将虚拟地址映射到物理地址的转换无效。即使高速缓存行仍然是脏的,它们也不能再被进程(即程序)访问。在这一步之后,操作系统会将不同的数据写入物理页,这个动作会使缓存行失效。最后,新改用的物理页面将被映射到一个虚拟地址。