更大的缓存大小是否总能提高性能?

Tah*_*aha 10 memory cpu caching processor

由于处理器内的缓存增加了指令执行速度.我想知道如果我们将缓存的大小增加到许多MB,如1 GB.可能吗?如果它会增加缓存大小总是导致性能提高?

Mic*_*ael 5

这是一种简化,但是,缓存提高“速度”的主要原因之一是它提供了非常靠近处理器的快速内存 - 这比主内存的访问速度要快得多。所以,理论上,增加缓存的大小应该允许更多的信息存储在这个“快速”内存中,从而提高性能。 现实世界中的事情显然比这复杂得多,当然会有增加了与如此大的缓存相关的复杂性和成本,以及处理缓存一致性、缓存算法等问题。


lev*_*tov 5

一方面是缓存大小和命中率,另一方面是读取延迟与功耗之间的权衡。所以你的第一个问题的答案是:技术上(可能)可能,但不太可能有意义,因为现代 CPU 中的 L3 缓存大小仅为几 MB,读取延迟约为数十个周期。

性能更多地取决于内存访问模式而不是缓存大小。更准确地说,如果程序主要是顺序的,缓存大小不是什么大问题。如果有相当多的随机访问(例如,当关联容器被积极使用时),缓存大小真的很重要。

以上适用于单个计算任务。在具有多个活动进程的多进程环境中,更大的缓存大小总是更好,因为进程间争用的减少。