解读CPU缓存,它们如何工作的?
近年来,计算机中央处理器已经取得了相当大的进步,晶体管每年都在变小,性能也变得更加强大。每当提到处理器的性能时,人们往往会想到晶体管和频率。实际上,除了更多的晶体管数量和更高的频率之外,缓存也非常重要。
对于大部分人来讲,他们大都听说过缓存。但是,并没有对 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缓存,并且缓存也可能更快。
因此,我们可以根据自己的实际应用场景需求,在购买产品之前仔细查看产品的规则,以此来保证买到自己想要的产品。