我看到了这个声明,我想知道应该如何解释它,请耐心等待我,谢谢。
“给定一个多核系统 Pr1 和 Pr2。地址 Add1 和 Add2 映射到同一个缓存块,但 A1 不等于 A2。缓存状态最初是无效的。”
缓存块和处理器是否像我在 A 或 B 中绘制的图表一样?我对 Add1 和 Add2 映射到同一个缓存时的含义感到困惑,但这是否意味着 Pr1 和 Pr2 访问同一个块?或者他们每个人都有自己的区块?
我看到了这张图,因此我很困惑这个声明中的架构是什么样的。
如有任何解释,我们将不胜感激,谢谢!
将缓存视为软件使用的有界哈希表。地址被散列到同一位置,这会导致冲突。
在您的示例中,缓存一开始为空(无效块)。加载内存位置时,两个地址映射到同一高速缓存行。如果我们假设直接映射缓存,则加载冲突,导致其他项在加载到块中时被逐出。如果两者都是频繁使用的热条目,则此冲突可能会导致系统颠簸,从而导致由于内存提取而导致停顿,从而导致性能问题。关联缓存将支持某些冲突,例如在大多数情况下,2-way 在实践中可能足以避免此问题。这可能意味着 L1 直接映射 + 2 路 L2 可能是可以接受的,其中每核缓存会发生冲突,但共享缓存不会发生冲突,并且避免了对主内存的惩罚。