【问题标题】:Is Translation Lookaside Buffer (TLB) the same level as L1 cache to CPU? So, Can I overlap virtual address translation with the L1 cache access?Translation Lookaside Buffer (TLB) 与 L1 缓存到 CPU 的级别相同吗?那么,我可以将虚拟地址转换与 L1 缓存访问重叠吗?
【发布时间】:2015-01-30 00:43:31
【问题描述】:

我正在尝试了解有关缓存的整个结构和概念。由于我们使用 TLB 将虚拟地址快速映射到物理地址,如果我们使用虚拟索引、物理标记的 L1 缓存,是否可以将虚拟地址转换与 L1 缓存访问重叠?

【问题讨论】:

  • 请参阅我的survey paper on TLB 的第 2.1 节。它讨论了 VIPT/PIPT/VIVT/PIVT 设计及其权衡。 VIPT 设计是常用的,因为它允许将 VA 转换与 L1 访问重叠。尽管 VIVT 设计可能会减少 TLB 访问,但它存在同义词问题。

标签: caching memory computer-architecture tlb


【解决方案1】:

是的,这就是 VIPT 缓存的全部意义所在。

由于虚拟地址和物理地址在低位上匹配(页面偏移量相同),因此您无需转换它们。大多数 VIPT 缓存都是围绕此构建的(请注意,这会限制您可以使用的集合数量,但您可以增加它们的关联性),因此即使在找到翻译之前,您也可以使用低位在该缓存中进行查找TLB。

这很关键,因为 TLB 查找本身需要时间,并且 L1 缓存通常旨在提供尽可能多的 BW 和低延迟,以避免停止通常更快的执行。

如果您错过了 TLB 并遭受了更大的延迟(或者是某个 level2 TLB,或者,上帝保佑,页面遍历),那么它就不那么重要了,因为在您比较标签之前,您实际上无法对缓存查找做任何事情,但是您在 TLB 命中 + 缓存命中情况下保存的几个周期应该是许多应用程序的常见情况,因此通常认为值得优化和对齐管道。

【讨论】:

  • 有(正如您所暗示的那样)处理 VIPT 缓存中的别名的方法也不是 PIPT。通过方式预测,可以增加翻译延迟,同时仍然使用物理标签;使用部分虚拟标签可以允许进一步的翻译延迟。 (然后是双重标记选项,从技术上讲,它可能仍被视为 VIPT,特别是如果处理器使用物理标记,而不仅仅是相干系统。)当然,这种有趣的复杂性可能超出了这个问题的范围。
猜你喜欢
  • 1970-01-01
  • 2010-12-30
  • 2017-08-12
  • 2021-09-30
  • 2021-07-04
  • 2011-04-11
  • 2021-09-21
  • 2010-10-27
  • 2017-01-27
相关资源
最近更新 更多