繁体   English   中英

转换后备缓冲区(TLB)与L1缓存到CPU的级别是否相同? 那么,我可以将虚拟地址转换与L1缓存访问重叠吗?

[英]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?

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

是的,这是VIPT缓存的重点。

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

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

如果你错过了TLB并且遭受了更大的延迟(某个级别2 TLB或上帝禁止,页面漫步),那么它就不那么重要了,因为在你比较标签之前你无法对缓存查找做任何事情,但少数你在TLB命中+缓存命中案例中保存的周期应该是许多应用程序的常见情况,因此通常认为值得优化和对齐管道。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM