为什么现代 CPU 中使用多级缓存?

Ant*_*t's 5 cache multi-processor

我最近阅读了有关处理器(主要是多处理器)的文章,并且遇到了多级缓存的概念。在这种情况下,这些设计具有多个级别的缓存以提高性能。

但是,我无法弄清楚额外的缓存如何提高处理器的性能?为什么不增加现有缓存的大小呢?

jcr*_*dor 13

使用多个缓存级别部分是一种协调多核处理器的机制,部分是价格和性能之间的折衷。

在具有多个内核的处理器中,每个内核都有自己的 L1 缓存。这允许内核从缓存读取和写入缓存,而不必担心干扰其他内核。但是,内核需要共享存储,以便它们可以轻松交换某些信息。L2 缓存由所有内核共享,因此它用作一种公共存储空间,所有线程都可以在其中使用信息。

L2 和 L3 缓存之间的区别在于折衷部分。缓存由静态 RAM 或 SRAM 组成。这与构成主存储器的动态 RAM (DRAM) 不同。动态 RAM 需要定期“刷新”,也就是说,随着时间的推移,DRAM 单元会失去它们的价值,除非它们被读取然后重新写入。您的内存控制器会自动执行此操作,但每次内存控制器必须执行此操作(每秒数千次)时,它都无法读取/写入处理器的值,直到完成为止。这会减慢 DRAM 的速度。SRAM没有这个限制,只要有工作功率,SRAM就会无限期地保持它的价值,使它更快。因此,您的缓存(L2 和 L3)都是由 SRAM 构成的。问题是SRAM非常昂贵的; 虽然 4GB 的高速 DRAM 有点贵但负担得起,但 4GB 的 SRAM 远远超出您的价格范围。

因此,每当处理器制造商决定在设计中添加更多 SRAM 时,它的成本就会明显升高。SRAM 有多种速度,正如您所料,更快的 SRAM 比慢速的 SRAM 更贵。因此,您的处理器制造商已尝试通过使用高速 SRAM 和低速 SRAM来优化它的速度成本。然后处理器被设计成将它最需要的值放在较快的高速缓存 (L2) 中,并将它需要较少的信息放在较慢的高速缓存 (L3) 中。通过在处理器的微代码中小心地管理这个内存,这会造成一个折中:有更多的缓存,并且一些缓存(希望处理器最需要的缓存)非常快。

所以,综上所述,处理器具有多级缓存,是为了在不大幅增加处理器价格的情况下增加处理器缓存的容量。这种谨慎的混合允许更快、更便宜的处理器。