假设TLB命中率为90%,物理内存访问需要100ns,TLB访问需要20ns,计算使用两级页表,并行TLB和页表索引的处理器的有效访问时间。
这是我的公式:
(H)(TLB access time + mem access time) + (1-H)(TLB access + PT access + mem access)
这是我的计算:
EAT = [(.90) * (100ns + 20ns) + (1-.90)(20ns + 100ns*2 + 100ns)] = 130ns
由于二级页表,我理解 2* 100ns,我的困惑是当我的教授说 TLB 访问时间 20ns 不应该包括在未命中计算中时。
有人可以解释一下这背后的原因吗?
最佳答案
假设 TLB 和 PT 索引是“并行的”。所以 查找 TLB 和 PT 是同时的 。
在内存查找时,处理器启动 PT 和 TLB 查询。如果TLB有答案,它会先回答;那是命中案例。如果不是,则查询将继续运行,直到 PT 应答;这就是未命中的情况。
重要的是,在 TLB 确定它无法回答期间,PT 已经开始查找答案。因此,在缓存未命中时不应考虑 TLB 查找时间。
关于operating-system - 如何计算有效访问时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29861108/