我正在尝试验证软件 MMU。
在我得到的测试用例中,我需要检查“TLB 锁定和失效”。
我进行了测试并检查了 TLB 未命中,但我无法理解 TLB 锁定和失效的确切含义。
TLB 代表翻译后备缓冲区。当 MMU 被激活并访问虚拟内存时。MMU 需要将虚拟地址转换为物理地址。MMU 通过对存储虚拟地址和相应物理地址之间映射的 RAM 进行读取(通常是 2 次读取)来做到这一点。由于访问 RAM 很慢,映射被缓存在 TLB 中。这意味着后续的 MMU 查找可以只检查 TLB 而不必访问 RAM。
当一个人切换进程时,一个人用新的进程页表重新编程 MMU。此时需要使 TLB 无效,以确保我们不会访问分配给旧进程的内存。
ARM 包含一系列性能寄存器,每当遇到 TLB 未命中时,其中一个就会递增。您可以在测试中使用它。
查找更多信息的最佳位置可能是ARM 架构参考手册,尽管它不是简单的阅读。