如何计算有效访问时间

How to Calculate Effective Access Time

假设TLB命中率为90%,物理内存访问耗时100ns,TLB访问耗时20ns,计算使用两级pagetables,并行TLB和page的处理器的有效访问时间table 索引。

这是我的公式:

(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 因为二级页面 table,我的困惑是当我的教授说 TLB 访问时间 20ns 不应该包括在未命中计算中。

有人可以解释一下这背后的原因吗?

TLB 和 PT 索引假定为 "parallel"。所以同时查找 TLB 和 PT

在内存查找时,处理器启动 PT 和 TLB 查询。如果 TLB 有答案,它会先回答;那是命中注定。如果没有,查询将继续运行直到PT回答;那是非命中情况。

重要的是,在TLB确定它不能回答的时候,PT已经开始查找答案了。因此,在缓存未命中时不应考虑 TLB 查找时间。