【问题标题】:operating systems - TLBs操作系统 - TLB
【发布时间】:2011-02-11 07:16:47
【问题描述】:

我正在努力解决这个问题(好吧,tbh 在考试前一晚死记硬背:)但我无法弄清楚(也无法在网上找到一个好的高级概述):

'页表条目可以映射到多个 TLB 条目。例如,如果每个页表条目都映射到两个 TLB 条目,这称为 2-way set associative TLB'

我的问题是,我们为什么要多次映射它?我们肯定希望在 TLB 中表示最大数量的可能条目,重复会浪费空间吗?我错过了什么?

非常感谢

【问题讨论】:

    标签: operating-system tlb


    【解决方案1】:

    这并不意味着您会将相同的条目加载到表格中的两个位置——这意味着可以将特定条目加载到表格中的两个位置中的任一。只能将条目映射到表中的一个位置的替代方法是直接映射 TLB。

    直接映射 TLB 的主要缺点是,如果您从内存的一部分复制到另一部分,并且(通过 CPU 使用的任何直接映射方案)两者的转换必须映射到同一个位置,则会出现直接映射 TLB 的主要缺点在 TLB 中。在这种情况下,您最终每次都重新加载 TLB 条目,因此 TLB 几乎没有效果或根本没有效果。通过使用双向集关联 TLB,您可以保证任何两个条目可以同时在 TLB 中,因此(例如)从 A 点到 B 点的块移动不会破坏您的一天——但是如果您从两个区域读取,将它们组合起来,然后将结果写入第三个区域(如果所有三个区域都使用映射映射到同一组 TLB 条目的翻译)。

    拥有多路 TLB(与任何其他多路缓存一样)的缺点是您无法直接计算 哪个 位置可能在给定时间保存特定条目 - 您基本上是在整个找到正确入口的方法。对于双向,这几乎不是问题——但四向通常是有用的限制; 8 路集合关联(TLB | 缓存)根本不常见,部分原因是在 8 个可能的位置搜索数据开始变得过多。

    随着时间的推移,在缓存或 tlb 中使用有意义的方式的数量往往会增加。内存和处理器之间的速度差异继续扩大。差异越大,CPU 可以使用的周期越多,并且仍然在单个内存时钟周期(或指定数量的内存时钟周期,即使不止一个)内产生结果。

    【讨论】:

      猜你喜欢
      • 2014-01-03
      • 1970-01-01
      • 2010-11-15
      • 2014-05-27
      • 1970-01-01
      • 1970-01-01
      • 2012-02-05
      • 1970-01-01
      • 2013-08-29
      相关资源
      最近更新 更多