2014-12-01 33 views
2

我想了解关于缓存的整个结构和概念。当我们使用TLB将虚拟地址快速映射到物理地址时,如果我们使用虚拟索引的物理标记的L1高速缓存,可以将虚拟地址转换与L1高速缓存访​​问重叠吗?翻译旁视缓冲区(TLB)与L1缓存到CPU相同吗?那么,我可以将虚拟地址转换与L1缓存访问重叠吗?

+0

参见第2.1节(https://www.academia.edu/29585076/A_Survey_of_Techniques_for_Architecting_TLBs)。它讨论了VIPT/PIPT/VIVT/PIVT设计及其折衷。通常使用VIPT设计,因为它允许重叠VA转换与L1访问。虽然VIVT设计可能会减少TLB访问,但它受到同义词问题的困扰。 – user984260 2017-07-20 09:45:32

回答

3

是的,这是一个VIPT缓存的整点。

由于虚拟地址和物理一场比赛在低位(页面偏移是一样的),你不需要给他们翻译。大多数VIPT高速缓存解决此建(注意,这限制了台,你可以使用数字,但可以改为种植它们的结合),所以你可以使用较低位进行查找在缓存中,你发现了翻译,甚至前TLB。

这是关键的,因为TLB查找自身花费时间,和L1高速缓存通常被设计为提供尽可能多的BW和低延迟尽量避免失速经常备受更快的执行。

如果您错过了TLB并承受更大的延迟(无论是某个level2 TLB还是上帝禁止的页面遍历),它并不重要,因为在比较标记之前,您无法对缓存查找进行任何操作,但是您在TLB命中+缓存命中情况下保存的几个周期应该是许多应用程序的常见情况,因此通常认为值得优化和对齐管道。我的[调查纸张上的TLB]

+0

有(如你所示)处理VIPT缓存中别名的方法,这些缓存不是PIPT。通过方式预测,可以增加翻译延迟,同时仍然使用物理标签;使用部分虚拟标签可允许进一步的翻译延迟。 (再有就是双标签的选项,这可能会在技术上仍然被认为VIPT尤其是在物理性的标签是由处理器使用,并且不只是相干系统)。当然,这种乐趣的复杂性很可能超出了这个问题的范围。 – 2014-12-02 23:50:27