共计 1895 个字符,预计需要花费 5 分钟才能阅读完成。
导读 | 究竟什么是 CPU 缓存?为什么有 L1、L2 和 L3 缓存?以下是您需要了解的内容以及它们的工作原理。 |
近年来,计算机中央处理器已经取得了相当大的进步,晶体管每年都在变小,性能也变得更加强大。每当提到处理器的性能时,人们往往会想到晶体管和频率。实际上,除了更多的晶体管数量和更高的频率之外,缓存也非常重要。
对于大部分人来讲,他们大都听说过缓存。但是,并没有对 CPU 缓存的容量给予足够的关注。那么,CPU 缓存到底有多重要,它是如何工作的?
简而言之,CPU 缓存只是一种非常快速的内存类型。在计算的早期,处理器速度和内存速度都很低。然而,在 1980 年代,处理器速度开始迅速提高。当时的系统内存(RAM)无法应对或匹配不断增加的 CPU 速度,因此一种新型的超快内存诞生了:CPU 缓存。
现在,您的计算机内部有多种类型的内存,例如有主存储(如硬盘或 SSD)存储大部分数据,即操作系统和程序。
还有“随机存取存储器”,俗称内存,它比主存储快得多,但只是一个短期存储介质,它让计算机及其程序使用 RAM 来存储经常访问的数据,从而帮助保持计算机上的操作良好而快速。
最后,CPU 内部还具有更快的内存单元,称为 CPU 缓存。
计算机内存具有基于其运行速度的层次结构。CPU 缓存位于此层次结构的顶部,是最快的。它也是最接近中央处理的地方,是 CPU 本身的一部分。从技术上来看,高速缓存的运行速度比 RAM 快 10 到 100 倍,只需要几纳秒即可响应 CPU 请求。
计算机内存也有不同的类型,其中高速缓存是静态 RAM(SRAM)的一种形式,而常规系统 RAM 称为动态 RAM(DRAM)。静态 RAM 可以保存数据而无需不断刷新,这与 DRAM 不同,这使得 SRAM 成为缓存的理想选择。
计算机上的应用程序被设计为 CPU 解释和运行的一组指令。当您运行程序时,指令会从主存储(硬盘驱动器)传输到 CPU,这就是内存层次结构发挥作用的地方。
数据首先加载到 RAM 中,然后发送到 CPU。CPU 每秒能够执行大量指令。为了充分利用其功能,CPU 需要访问超快内存,这就是 CPU 缓存的用武之地。
内存控制器从 RAM 获取数据并将其发送到 CPU 缓存,然后内存缓存在 CPU 内来回执行数据。当然,内存层次结构也存在于 CPU 缓存中。
CPU 高速缓存分为三个“级别”:L1、L2 和 L3,内存层次结构则根据速度以及缓存大小进行排列。
L1(级别 1)缓存是计算机系统中存在的最快内存。就访问优先级而言,一级缓存具有 CPU 在完成特定任务时最有可能需要的数据。
一级缓存的大小取决于 CPU。一些高端消费类 CPU 现在具有 1MB 的 L1 缓存,如 Intel i9-9980XE,但这些要花费大量资金,而且仍然很少。一些服务器芯片组,如英特尔的 Xeon 系列,还具有 1 -2MB 的 L1 内存缓存。
由于一级缓存的大小没有“标准”,因此您必须在购买前仔细查看 CPU 规格以确定确切的一级内存缓存大小。
英特尔 CPU L1 数据缓存图
一级缓存通常分为两部分:指令缓存和数据缓存。指令高速缓存处理有关 CPU 必须执行的操作的信息,而数据高速缓存保存要对其执行操作的数据。
L2(级别 2)缓存比 L1 缓存慢,但容量更大。L1 缓存可能以 KB 为单位,而 L2 内存缓存以兆字节为单位。例如,AMD Ryzen 5 5600X 具有 384KB 的 L1 缓存和 3MB 的 L2 缓存(加上 32MB 的 L3 缓存)。
二级缓存大小因 CPU 而异,但其大小通常在 256KB 到 32MB 之间。大多数 CPU 将包含超过 256KB 的二级缓存,这在现阶段是最小的。此外,一些最强大的 CPU 具有更大的二级内存缓存,远远超过 8MB。
在速度方面,二级缓存落后于一级缓存,但仍然比您的系统 RAM 快得多。一级内存缓存通常比 RAM 快 100 倍,而二级缓存大约快 25 倍。
早期,L3 内存缓存实际上是在主板上找到的。现在,CPU 中的 L3 缓存可能非常庞大,高端消费类 CPU 具有高达 32MB 的 L3 缓存,某些服务器 CPU L3 缓存可能会超过此值,最高可达 128MB。
L3 缓存是最大但也是最慢的缓存单元。但是,虽然芯片本身的每个内核都存在 L1 和 L2 缓存,但 L3 缓存更类似于整个芯片都可以利用的通用内存池。
缓存越多、容量越大,则会越好,价格也会越高。新一代的 CPU 自然会比老一代包含更多的 CPU 缓存,并且缓存也可能更快。
因此,我们可以根据自己的实际应用场景需求,在购买产品之前仔细查看产品的规则,以此来保证买到自己想要的产品。