【问题标题】:Paging and TLB operating systems分页和 TLB 操作系统
【发布时间】:2014-01-03 04:45:26
【问题描述】:

对于我的操作系统课程,我真的被困在这个问题上,但我不希望有人只给我答案,而是希望有人能告诉我如何解决。

示例问题:

本系统使用简单的分页和TLB

  • 每次内存访问需要 80ns

  • TLB 访问需要 10ns

  • TLB 命中率为 80%。

计算出由于 TLB 的实际加速?

注意:我更改了访问所需的内存,而 TLB 访问需要部分问题,因为正如我所说,我不想要答案,只是一种解决方法。

【问题讨论】:

  • 80% 的时间需要 10ns,而 20% 的时间需要 80ns?计算 TLB 的平均时间
  • @James 太棒了,谢谢,我已经看到了示例答案,例如:- 命中率 = 80%,TLB 访问时间 = 2 ns,内存访问 = 20 ns。 80% * 22 ns + 20% * 42 ns = 26 ns 我不明白他们从哪里得到 42

标签: memory-management virtual-memory tlb


【解决方案1】:

如果虚拟地址转换缓存在 TLB 中,我们只需要在 TLB 中进行一次查找,该查找将为我们提供物理地址,然后我们就完成了。有趣的部分是我们是否需要进行页表遍历。仔细考虑系统在没有在 TLB 中找到地址的情况下必须做什么(它已经必须进行 TLB 查找)。内存访问需要 80 纳秒,但实际获取物理地址需要多少纳秒?几乎每个分页架构都遵循页表存储在内存中的架构,只有入口点,即指向第一个页表(根)基址的地址在寄存器中。

如果您有足够的时间,您可以通过将其与 TLB 访问时间进行比较来计算加速。

【讨论】:

  • 非常感谢,但我想知道如何解决这个问题,我已经看到了示例答案,例如:- 问题:- 命中率 = 80%,TLB 访问时间 = 2 ns,内存访问 = 20 纳秒。答:- 80% * 22 ns + 20% * 42 ns = 26 ns 我不明白他们从哪里得到 42
  • 我假设 42 包含 1 次 TLB 查找 (2ns)、1 次页表内存查找 (20ns) 和 1 次页表遍历找到的物理地址的内存查找 (20ns )。
【解决方案2】:

在 TLB 命中 80% 时,您需要 2ns 的访问时间和访问主存储器中的该页面需要 20ns,因此一部分是 0.8×(2+20)

在 TLB 未命中时,即 (1-0.8) 20%,因为您正在再次检查 TLB,因此当 TLB 未命中时需要 2ns,它将检查到页表,但页表的基地址在主存储器中,因此需要 20ns 和当它搜索到 PT 时,它将获得所需的帧并再次需要内存访问时间来访问主内存中的数据,因此未计算是 0.2×(2+20+20)

从上面2:

有效访问时间=0.8×(2+20)+0.2×(2+20+20) = 26ns

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多