virtual_cache.md
虚拟 Cache:通过虚拟地址访问 Cache。
当 CPU 访问内存时,同时把虚拟地址送给 MMU 和 Cache。
- 不命中:使用从 MMU 得到的物理地址访问内存
- 命中:直接从 Cache 中读取数据
由于访问 Cache 和地址转换是并行的,命中速度更快。
缺陷
- 每次进程切换时都要 purge 整个 Cache,可以通过给 Tag 加上 PID 来缓解,然而,在发生 PID 重用时依然需要 purge。
- 同一物理地址可能对应多个虚拟地址,造成缓存不一致。可通过页着色解决