L1、L2 和 L3 缓存:有什么区别?
L1、L2 和 L3 高速缓存之间的主要区别在于容量和传输速度。L1 容量低但速度极快,L2 速度较慢但存储空间更大,L3 是三者中最慢的但通常也具有最大的存储容量。
现代计算机处理器都采用多级高速缓冲存储器系统,可以让数据暂时存储在芯片上,以便快速访问。如果您想从购买的下一个 CPU 中获得最佳性能,那么了解 L1、L2 和 L3 缓存之间的差异可能很重要。
什么是 CPU 高速缓存?
CPU 高速缓存是一种位于处理器上的临时数据存储。它用于通过保存准备好高速访问的小的、经常请求的数据位来提高CPU的处理效率。高速缓存由不同级别的存储组成。这些级别通常称为 L1、L2、L3,有时也称为 L4,并且位置、速度和大小各不相同。
为了更好地理解为什么 CPU 需要自己的内存缓存,我们必须看看处理器和RAM的发展。在早期的计算机中,处理器和 RAM 之间的速度差异很小。几乎不用担心内存会减慢处理速度。由于中央处理器运行速度的增长远远超过 RAM 速度,因此需要以某种方式减少这种差异。答案是高速缓存。
缓存内存速度极快,通常比 DRAM 快 10 到 100 倍,而且在物理上靠近处理器内核。现代、快速的处理器不会因为必须从相对较慢的系统内存中请求数据而减慢速度,因为它们可以从缓存中获取数据。
这种称为 SRAM 的内存之所以不仅仅用于代替计算机中的DRAM ,其原因在于其成本。CPU 上的缓存内存量相对较小,以千字节或兆字节而不是千兆字节为单位,并且制造与现代 RAM 模块相同大小的成本将高得令人望而却步。
高速缓存不应与计算机中常见的其他类型的高速缓存相混淆。尽管“高速缓存”可以指用于提高软件或硬件效率的几种临时内存存储,但高速缓存特定于处理器硬件。
什么是一级缓存?
L1 缓存,有时称为主缓存,是最小和最快的内存级别。它的大小通常为 64KB,但处理器的每个内核都有自己内置的 L1 缓存,因此四核 CPU 总共有 256KB。
如果您在CPU-Z等工具中查看内存详细信息,您会注意到 L1 缓存进一步分为两个级别:L1-I(指令)和 L1-D(数据)。L1 指令缓存处理将馈送到处理器的信息,而数据缓存保存要写入主内存的信息。
一级高速缓存可以以与 CPU 的最大运行速度一样快或更快的速度传输数据,因此效率极高。如果处理器在 L1 中找不到所需的数据,它会在 L2 和 L3 缓存中查找。
什么是二级缓存?
L2 缓存是二级内存缓存,也嵌入在 CPU 的每个单独内核中。它几乎总是比 L1 有更多的存储空间,但它的运行速度较慢,尽管仍然比 RAM 速度快得多。
一些高端处理器可能总共有 32MB 的二级缓存,但 6-12MB 可能是平均值。如前所述,这在所有内核之间平均分配,允许每个内核独立访问自己的缓存。
什么是三级缓存?
3 级缓存不是嵌入在每个 CPU 内核中,而是充当整个处理器都可以访问的共享存储池。它比 L1 和 L2 缓存慢得多,可能只有 RAM 的两倍,但它是所有三个内存级别中最大的。
如果 CPU 无法在高速缓存中找到它需要的数据,它必须改为从较慢的系统内存中请求数据。这称为高速缓存未命中。L3 缓存的引入减少了未命中的机会,因此有助于提高性能。
最初开发时,L3 缓存通常位于主板上的独立芯片中。现代 CPU 现在几乎完全具有板载 L3 缓存以提高效率。
L1 vs. L2 vs. L3 缓存:有什么区别?
三级高速缓存之间的主要区别在于大小、速度和它们所在的位置。
- L1 缓存的存储容量较低,但通常是所有计算机中最快的内存,比 RAM 快 100 倍。每个处理器内核都有自己的 L1 缓存,通常约为 64KB。
- L2 缓存可能比 L1 大几倍,但速度仅为 RAM 的 25 倍左右。与 L1 一样,每个处理器内核都有自己的 L2 缓存。每个通常为 256-512KB,有时高达 1MB。
- L3 缓存具有最大的存储容量,通常为 32MB 或更多,但速度可能仅为系统内存的两倍。L3 缓存通常嵌入在 CPU 中,但与内核分开。
缓存内存可以删除吗?
有可以删除或清除的内存缓存,例如系统缓存或浏览器缓存,但不能删除CPU缓存内存。就像 DRAM 一样,SRAM 是易失性存储器,这意味着它不会长期保留其内容。一旦关闭计算机电源,高速缓存中的所有内容都会丢失。
我需要多少高速缓存?
与大多数类型的内存一样,CPU 的缓存越多越好。您无法升级高速缓存,因此确保您选择的处理器足以满足您的需求非常重要。也就是说,这取决于您使用计算机做什么,您不应该迷恋于这一 CPU 功能。时钟速度、内核和线程数以及其他因素都会影响 CPU 性能。
L1 缓存的良好基线是每个内核 64KB。您可以通过将总量除以 CPU 中的内核数来计算。每个核心 256KB 的 L2 缓存是完全可以接受的,但游戏玩家可能希望寻找每个核心 512KB 的缓存。对于大多数用途,32 到 96MB 的 L3 缓存都可以。