【发布时间】: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