Cache 的组织和过程(VIVT、VIPT、PIPT)
1. VIVT
VA 里的 index 🡲 查找到 cache-line 🡲 跟 VA 里的 tag 比较 :
* hit 🡲 返回(不经过 MMU)
* miss 🡲 [VA->MMU->]PA 访存,写回 cache-line;VA 里的 tag 更新到 cache-line 🡲 返回
有别名问题。
2. VIPT
VA 里的 index 🡲 查找到 cache-line 🡲 跟 [VA->MMU->]PA 里的 tag 比较 :
* hit 🡲 返回
* miss 🡲 PA 访存,写回 cache-line;PA 里的 tag 更新到 cache-line 🡲 返回
有别名问题。
3. PIPT
[VA->MMU->]PA 里的 index 🡲 查找到 cache-line 🡲 跟 PA 里的 tag 比较 :
* hit 🡲 返回
* miss 🡲 PA 访存,写回 cache-line;PA 里的 tag 更新到 cache-line 🡲 返回
参考资料