【问题标题】:TLB structure in intelintel的TLB结构
【发布时间】:2016-06-03 06:28:50
【问题描述】:

我从 Patterson & Hennessy 书中的基本定义开始,然后按照英特尔编程参考文档了解有关 TLB 的更多信息。

从英特尔文档中我了解到 TLB 的高级设计。 例如行大小、关联性和缓存级别。但是需要详细解释 TLB 缓存如何处理缓存未命中及其在现代 CPU 中的替换机制。哪些页面会移动
从 L1 TLB 到 L2 TLB ? TLB 中的单个条目可以寻址多少页? TLB 中有多少条目? (特别是DTLB)

任何信息或参考资料都会对我有很大帮助。 (如果这不是这个问题的正确论坛,请推荐正确的论坛)

谢谢。

【问题讨论】:

  • 您可能会喜欢lwn.net/Articles/379748,即使它不能回答您提出的所有问题。
  • TLB 没有“行”,它有条目。一个条目将一个虚拟页面映射到一个物理页面。 TLB 未命中与 L1 缓存未命中是分开的。 (没有明显的理由表明,即使该行的翻译已从 TLB 中清除,该行在 L1 D 缓存中仍然很热。)
  • David Kanter 写的 Haswell mentions the TLBs 有点,但没有涉及 TLB 条目的替换策略。我认为 L2 DTLB(8 路关联)是从 L1 DTLB 驱逐的条目的受害者缓存。在他的 SnB 文章中,他说 L1 DTLB 是完全关联的,但现在他说 4-way?当 L1 DTLB 未命中并且它存在于 L2 DTLB 中时,条目会从 L2 DTLB 移动到 L1 DTLB。 the x86 tag wiki 上的一些链接可能有用,但很有可能。只有大卫坎特的 Haswell 文章。
  • L1 DTLB 缓存到底是什么?具体来说,L1 DTLB 中的每个条目是在高速缓存中缓存一条数据线(获取的数据线)还是获取数据的整个页面。 L2 TLB缓存什么,是page entry吗?
  • TLB 缓存页表条目,来自操作系统定义的页表。

标签: intel processor microbenchmark tlb


【解决方案1】:

TLB可以称为翻译缓存,其功能几乎与片上缓存一样,例如独占/包含层次结构、多/单级、私有/共享的权衡与缓存相同.关联性、页面大小等也是如此。

一个 TLB 条目仅将一个虚拟页面映射到物理页面,但页面大小可以变化,例如,处理器可以使用 2MB 或 2GB 来代替 4kB,这称为superpage or hugepage。或者一个处理器可以使用多种页面大小。

既然您要求参考,请参阅我的 survey paper on TLB,它回答了所有这些问题并审查了 85 多篇论文。具体来说,论文的第 2 节引用了讨论商业处理器中 TLB 设计的论文。

【讨论】:

    猜你喜欢
    • 2020-01-27
    • 2017-03-31
    • 2022-10-20
    • 1970-01-01
    • 2012-08-29
    • 2011-03-18
    • 2016-09-25
    • 2013-05-15
    • 1970-01-01
    相关资源
    最近更新 更多