我很难理解当翻译旁视缓冲区的前两个级别导致未命中时会发生什么?
我不确定特殊硬件电路中是否出现"页面行走",或者页表是否存储在L2/L3高速缓存中,或者它们是否只存在于主存储器中.
英特尔手动优化(2019 年 9 月修订版)显示了用于 Ice Lake 微架构的 48 KiB 8 路关联 L1 数据缓存。
这让我感到困惑,因为:
总而言之,缓存的处理成本似乎更高,但延迟仅略有增加(如果确实如此,则取决于英特尔对该数字的确切含义)。
有一点创造力,我仍然可以想象一种快速索引 96 组的方法,但第二点对我来说似乎是一个重要的突破性变化。
我错过了什么?
我只是想澄清这个概念,并且可以找到足够详细的答案,这些答案可以说明一切在硬件中的实际效果.请提供任何相关细节.
在VIPT高速缓存的情况下,存储器请求并行发送到TLB和高速缓存.
从TLB我们得到了经过翻译的物理地址.从缓存索引中我们得到标签列表(例如,来自属于一组的所有缓存行).
然后将翻译的TLB地址与标签列表匹配以找到候选者.
请问某人"实际上"如何实现这一点以及Cache模块和TLB(MMU)模块之间的连接?
我知道这依赖于具体的架构和实现.但是,当有VIPT缓存时,您知道的实现是什么?
谢谢.
TLB 层次结构是否包含在现代 x86 CPU(例如 Skylake 或其他 Lakes)上?
例如,prefetchtn将数据带到级别缓存n + 1以及 DTLB 中的相应 TLB 条目。它也会包含在 STLB 中吗?