假设TLB命中率为90%,物理内存访问需要100ns,TLB访问需要20 ns,计算使用两级页表的处理器的有效访问时间,以及并行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不应该包含在未命中计算中。
有人可以解释一下这背后的原因吗?
答案 0 :(得分:2)
假设TLB和PT索引是" parallel"。所以同时查找TLB和PT 。
在内存查找时,处理器启动PT和TLB查询。如果TLB有答案,它将首先回答;这个案例。如果没有,查询将继续运行,直到PT回答;这是非打击案件。
重要的是,在TLB确定无法应答的时间内,PT已经开始寻找答案了。因此,在缓存未命中时不应考虑TLB查找时间。