如何计算有效访问时间
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 查找时间。
假设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 查找时间。