CPU缓存延迟:它如何影响性能

最后更新: 26月2026
  • CPU 缓存(L1、L2、L3 甚至 L4)与 RAM 相比,大大降低了延迟,是实际性能的关键。
  • 缓存层次结构平衡了容量和速度:每个核心使用 L1 和 L2 缓存,共享 L3 缓存,在某些情况下,L4 缓存作为 GPU 支持。
  • 延迟、带宽和缓存命中率以及 RAM 速度共同决定了游戏和高强度工作负载的性能。
  • AMD 的 3D V-Cache 等技术通过 3D 堆叠扩展 L3 缓存,显著提高游戏性能。

CPU延迟和缓存

在讨论处理器时,人们几乎总是关注核心数、频率和制造工艺,但缓存及其延迟却常常被忽视,尽管它们对系统的实际性能至关重要。了解CPU、缓存和RAM之间的交互过程,可以帮助我们理解为什么两个频率相同的处理器性能会截然不同。

近年来,缓存延迟、L1/L2/L3 带宽等概念,以及 AMD 的 3D V-Cache 等技术,已成为基准测试、游戏和 C++ 性能测试的关键因素。在这些测试中,哪怕几纳秒的差异都可能彻底改变测试结果。接下来,我们将深入剖析 CPU 缓存延迟的方方面面,探讨其重要性以及实际测量方法。

快取
相关文章:
缓存内存:系统的静默加速器

从CPU-RAM差距到高速缓存的诞生

20世纪80年代,处理器速度的增长速度远超内存速度。CPU开始以惊人的速度执行指令,而RAM的访问时间仍然相对较长。这导致了一个持续存在的瓶颈:处理器需要花费大量时间等待数据到达。

为了解决这种性能差距,工程师们引入了高速缓存,作为CPU和RAM之间的中间层。这个想法简单却强大:将CPU短期内最可能需要的数据和指令存储在非常靠近处理器且速度极快的内存中。这降低了有效延迟,并掩盖了RAM相对缓慢的缺点。

在现代个人电脑中,我们可以清楚地区分出三个存储级别:大容量存储设备(HDD、SSD),容量巨大但速度较慢;RAM,速度快得多但仍然存在明显的延迟;以及集成在 CPU 中的缓存,容量很小,但速度却是最快的。

缓存并非处理器独有:硬盘、固态硬盘、显卡、打印机和其他设备也都有各自的内部缓存来加速数据访问。然而,CPU缓存对日常用户体验的影响最为直接。

什么是CPU缓存?它是如何工作的?

CPU缓存是集成在处理器芯片中的SRAM存储器,能够以极高的速度运行,延迟仅为纳秒级。与RAM(DRAM)不同,它不需要不断刷新,制造成本更高,容量也小得多;因此,它仅用于存储非常短期、关键的数据。

它的主要功能是作为CPU核心和RAM之间的超高速缓冲区。程序启动时,其代码和数据首先从存储器加载到RAM的地址空间。然后,CPU集成的内存控制器会根据访问模式和预测算法,将最有可能被使用的数据块加载到缓存中。

典型的处理过程如下:CPU 请求一个内存地址,首先检查L1 缓存,然后是 L2 缓存,最后是 L3 缓存。如果数据在任何一个缓存层级中找到,则发生缓存“命中”,请求得到快速响应,从而节省大量时钟周期。如果数据在任何一个缓存层级中都找不到,则发生缓存“未命中”,数据必须从RAM 中检索,而 RAM 的延迟较高,且对于小规模操作而言,有效带宽较低。

这种内存层次结构的设计旨在实现一种平衡:靠近核心的缓存体积小、速度极快,而随着距离执行单元的增加,缓存层级越来越大,但速度也越来越慢。现代CPU的所有性能优势都取决于最大化命中次数和最小化未命中成本。

缓存级别:L1、L2、L3 甚至 L4

现代处理器通常在芯片内部集成了三级缓存:L1、L2 和 L3。一些特定型号还包括 L4 级缓存,通常以类似于 eDRAM 的独立芯片形式实现,用于执行非常特定的任务,例如为集成 GPU 提供额外的资源。

每个缓存层级都由三个因素构成:与核心的物理距离、延迟和容量。缓存层级越靠近执行单元,延迟越低,但容量也越小,因为晶体管成本会显著增加。

缓存 L1:第一道防线

L1缓存距离内核最近,也是所有缓存中最快的。它通常分为两个不同的部分:L1数据缓存(L1D)和L1指令缓存(L1I)。前者存储待处理的操作数,后者存储内核将要执行的解码指令。

每个核心都有自己的L1缓存,与其他核心不共享,这意味着不同核心之间没有直接的L1缓存一致性。通常,在许多现代架构中,每个核心配备32KB的L1D缓存和32KB的L1I缓存,尽管有些设计会增加这些值。一些高端处理器或服务器的缓存容量会略大一些。

  ESP32及其功能:最通用的微控制器的完整指南

在性能方面,L1缓存的延迟可低于纳秒级,在AIDA64等基准测试工具中,其峰值读取速度可达数千GB/s。例如,现代Ryzen处理器可以实现约0,7纳秒的L1延迟和超过2.700GB/s的带宽,但代价是缓存容量较小,例如所有核心的总L1缓存容量仅为512KB。

二级缓存:大小与速度之间的平衡

二级缓存(L2缓存)位于一级缓存(L1缓存)之后,作为第二层备份。它的延迟略高,但与内存(RAM)相比仍然非常低。它的作用是存储那些无法放入一级缓存但又经常使用的数据。

在大多数消费级架构中,每个核心都有自己的私有二层缓存,该缓存不区分数据和指令,通常每个核心的缓存大小为 256 KB 到 1 MB;但在最新一代服务器中,每个核心 1 MB 或更大的缓存大小已很常见。性能方面,带宽通常超过 1.300 GB/s,延迟约为 2,7 ns。

由于 L2 层容量更大,因此有助于减少原本会到达 L3 层或 RAM 的错误(如果只有 L1 层的话),从而在容量和延迟之间保持良好的平衡。在某些拓扑结构中,多个核心被分组为集群,共享一个公共的 L2 层,从而引入额外的一致性特性和内部总线。

L3 或 LLC(末级缓存)

L3缓存也常被称为LLC(末级缓存),因为在大多数桌面处理器中,它是RAM之前的最后一级缓存。它是CPU主封装内容量最大但速度最慢的缓存。

与 L1 和 L2 缓存不同,L3 缓存通常在所有核心或较大核心组(例如,某些 AMD 设计中的八个核心一组)之间共享。这使得任何核心都可以重用其他核心传入的数据,从而提高整体命中率,但同时也显著增加了数据一致性逻辑的复杂性。

在中端桌面处理器中,L3缓存容量通常在4MB到32MB之间,而服务器CPU,例如某些AMD EPYC系列,则很容易达到数百MB。但代价是更高的延迟(可能在10纳秒左右)和比L1和L2缓存更低的带宽,尽管带宽仍然相当可观:在高性能系统中可达约900GB/s。

L4 缓存:特殊情况

L4缓存是一种特殊情况,大多数消费级CPU中并不出现。它通常以eDRAM的形式实现,位于CPU主封装之外,但物理位置与主板非常接近,用于集成GPU的处理器中,以提升图形带宽。

英特尔酷睿 i5-5775C 就是一个经典的例子,它将 6MB 的 L3 缓存与128MB 的 eDRAM 结合使用,后者用作其集成 Iris Pro 6200 GPU 的 L4 缓存。这部分内存充当图形数据的缓冲区,减轻了系统内存的压力,并提高了游戏性能,优于其他不支持此功能的集成显卡。

缓存延迟及其对性能的影响

谈到CPU缓存,关键在于延迟:即CPU访问存储在特定内存层级的数据所需的时间。这种延迟以纳秒(ns)为单位,虽然这些时间看起来微不足道,但每秒数百万次的访问累积起来,就会产生显著的影响。

在典型的缓存层次结构中,L1 缓存的延迟最低(小于 1 纳秒),L2 缓存的延迟是 L1 的几倍(例如 2,7 纳秒),而 L3 缓存的延迟则进一步增加(可能达到 10 纳秒甚至更长,尤其是在 L3 缓存位于独立芯片上时)。当所有缓存均未命中时,处理器必须访问 RAM,即使使用高速 DDR5 内存,访问 RAM 的延迟也可能飙升至几十纳秒。

举个实际例子:使用 Ryzen 7 7700X 处理器和6.000 MT/s、CL30 的 DDR5 内存,我们可以看到平均内存延迟约为 70 纳秒,而 L1 缓存延迟为 0,7 纳秒,L2 缓存延迟为 2,7 纳秒,L3 缓存延迟约为 10 纳秒。这种差异解释了为什么 CPU 必须从缓存中查找数据:每次缓存未命中都会导致更长的等待时间。

延迟不仅取决于所使用的内存技术,还取决于物理距离和拓扑结构。在早期的设计中,L2 和 L3 缓存安装在主板上,距离 CPU 较远,导致延迟更高,性能也受到影响。将所有缓存集成到 CPU 封装中,显著降低了这些延迟。

除了延迟之外,有效缓存带宽(以 GB/s 为单位)也表明了单位时间内可以传输多少数据。在这方面,L1 缓存再次遥遥领先,在综合基准测试中读取速度超过 2.000 GB/s,L2 和 L3 缓存紧随其后,数值虽然略低,但仍然远高于 RAM。

命中率、缓存未命中率和跨核一致性

当 CPU 查找数据并在某个缓存级别中找到它时,我们称之为缓存命中。如果找不到,则发生缓存未命中,CPU 必须调用下一级缓存,或者在最坏的情况下,调用主内存。在更高级别的缓存中命中次数越多,系统整体性能就越好。

缓存未命中不仅会增加延迟;还会导致 CPU不得不重复工作周期或重新排列指令,因为数据尚未可用,这会“破坏”处理器的内部流水线,降低其功能单元的利用率。

  如何选择一款推荐的游戏笔记本电脑的完整指南

在多核处理器中,缓存一致性也至关重要;也就是说,要确保拥有各自L1和L2缓存的各个核心之间共享数据的一致性。复杂的缓存一致性协议负责在其他核心修改数据时使缓存行失效并更新缓存行,这会增加内部流量并可能影响有效延迟。

内部架构也发挥着作用。在像许多英特尔酷睿处理器这样的单芯片设计中,所有核心都访问同一个L3缓存,延迟相当均匀。而在像第一代AMD Ryzen处理器这样的芯片组或MCM架构中,L3缓存被组织成多个块(CCX、CCD),某些核心只能直接访问L3缓存的一部分,这导致在块之间切换时引入额外的延迟。

缓存延迟与内存延迟:频率、时序和总线

当缓存中没有所需信息时,RAM 就会发挥作用。这里,两个概念经常被混淆:延迟和频率。频率(通常以 MT/s 或 MHz 表示)表示每秒可以传输多少数据,而延迟(以纳秒 (ns) 或通过 CL16、CL30 等时序表示)表示第一条数据到达服务器所需的时间。

高频但高延迟的内存条虽然带宽不错,但响应时间较差,这会严重影响游戏等对延迟敏感的进程或某些非顺序访问的工作负载的性能。相比之下,低延迟的内存条虽然原始带宽不如高频内存条,但能提升首次访问速度。

CPU 和内存之间的总线宽度也很重要。在大多数桌面平台上,每个内存通道都具有 64 位总线,而双通道配置则可将有效位增加到 128 位,从而使处理器和内存之间可以同时传输的数据量翻倍。

频率、延迟和总线宽度的组合越高效,缓存未命中带来的损失就越小。即便如此,目前没有任何一款内存的延迟和带宽能够达到 L1、L2 或 L3 缓存的水平,因此,首要任务仍然是最大化缓存命中率。

暂存内存 vs 自动缓存

在处理器内部,我们不仅能发现硬件管理的自动缓存。一些设计还包括暂存式 RAM,这是一种速度非常快的内部存储器,与缓存不同,它不是自我管理的。

区别显而易见:缓存会透明地复制接近当前使用地址的数据行,并遵循内部算法,程序员无法直接控制它。相比之下,暂存区 RAM 则像一个小型本地 RAM,由软件自行决定存储哪些数据、如何组织数据以及何时清除数据。

这种方法在嵌入式处理器、DSP 和某些 GPU 中更为常见,因为这些应用需要高度可预测的访问模式,并且需要避免自动缓存带来的不确定性。在台式电脑和服务器上,最终用户很少会直接与暂存 RAM 进行交互。

缓存延迟、性能测试和一些奇特的现象

在基准测试领域,通常使用 AIDA64 等工具测量每个级别(L1、L2、L3)的缓存延迟(以纳秒为单位)和带宽(以 GB/s 为单位),或者用 C++ 开发自己的测试,对大型数组执行特定的扫描。

这些测试可以揭示一些奇怪的现象。例如,在看似空闲的系统上测量 L2 和 L3 读取带宽时,可能会观察到L2 值有时会从大约 80 GB/s 下降到大约 60 GB/s,而 L3 值可能会从大约 45 GB/s 下降到略高于 35 GB/s,而没有任何明显的原因。

一种常见的解释是降频,或者说是CPU内部频率和功耗状态的动态变化。然而,有时打开HWINFO之类的监控工具后,分数会神奇地恢复到“正常”值。关闭该工具后,分数又会再次波动下降。

通常情况下,像 HWINFO 这样的程序会使 CPU 保持在更高的性能状态,从而强制 CPU 运行在更稳定的频率,并防止内环或缓存的部分组件进入深度睡眠模式。如果基准测试运行时没有其他程序在运行,处理器往往会倾向于节省功耗,这可能会间歇性地降低测得的有效带宽,即使平均延迟没有显著变化。

在这种情况下,有人提出了解决方案,例如维护一个执行轻量级工作的“保持活动”线程来防止 CPU 进入睡眠状态,但要重现监控工具的效果并不总是那么容易,因为每个微架构都有自己的一组睡眠状态和内部策略。

缓存内存和游戏性能

在视频游戏中,L3缓存扮演着至关重要的角色。许多游戏工作负载都能从将更多数据和指令存储在更靠近CPU的位置而获益匪浅,这些数据和指令涵盖场景结构、物理数据和游戏逻辑等各个方面。RAM访问次数越少,帧率就越稳定,波动也越小。

拥有充足且充分利用的L3缓存的处理器可以显著提升帧率稳定性,尤其是在处理大量对象并对数据结构执行大量重复查询的现代游戏中。CPU无需频繁访问速度较慢且延迟较高的RAM,即可直接从L3缓存中处理大部分请求。

  什么是超频?它在电脑中有什么用途?

然而,缓存并非万能。即使拥有海量的L3缓存,核心数少、IPC低、频率不高的CPU性能仍然会受到限制。对于游戏而言,最佳组合通常是高IPC、高频率、充足的缓存以及低延迟的高速内存,这样才能最大程度地减少性能瓶颈。

当启动一款对性能要求很高的游戏时,如果同时使用 AIDA64 等基准测试软件进行测试,你会发现缓存访问量会激增。某些游戏中出现的轻微卡顿,很多都是由于缓存未命中导致系统访问内存,或是线程切换破坏了已建立的数据局部性造成的。

AMD 的 3D V-Cache 和 L3 缓存争夺战

为了突破单片扁平硅片上L3缓存的物理限制,AMD推出了3D V-Cache技术。该技术将额外的L3缓存芯片垂直堆叠在处理器CCD(芯片组)之上,从而在不增加芯片基础尺寸的情况下大幅提升了L3缓存容量。

带有 X3D 后缀的 Ryzen 处理器,例如Ryzen 7 7800X3D或 7950X3D,将这种理念发挥到了极致。以 7800X3D 为例,它将基础 CCD 中的 32 MB L3 缓存与堆叠的 64 MB L3 缓存相结合,使得该组核心总共可访问 96 MB L3 缓存。7950X3D 更进一步,除了 1 MB L1 缓存和 16 MB L2 缓存(分布在所有核心上)之外,还拥有 128 MB L3 缓存。

由于缓存命中率大幅提升,许多以前无法完全放入L3缓存的结构减少了对RAM的访问,因此对游戏的影响是巨大的。这也解释了为什么这些X3D模型已成为纯粹游戏性能的标杆,即使与拥有更多核心或更高时钟频率的CPU相比也是如此。

目前,其主要竞争对手英特尔尚未复制相同的解决方案。该公司表示,就目前而言,它更倾向于专注于均衡的整体性能,而不是像堆叠式L3缓存那样以游戏为导向的方案。这并不排除英特尔在未来几代产品中逐步增加其缓存容量的可能性,但短期内似乎不太可能采用完全相同的V-Cache方案。

如何查看处理器有多少缓存

如果你想了解CPU的L1、L2和L3缓存大小,又不想费力查找技术文档,最快捷的方法之一就是使用Windows自带的CPU-Z之类的工具。这款免费程序会在专门的标签页中显示各级缓存的大小,以及核心数、线程数和其他相关数据。

另一种方法是访问制造商的官方网站(例如 Intel ARK、AMD 产品手册等),但通常只有 L3 缓存的详细信息会清晰列出,而 L1 和 L2 缓存的信息则需要查阅技术文档才能找到。专业媒体的评测和分析通常也会提供这些信息,以及延迟和带宽基准测试结果。

选择并合理利用 RAM 和缓存

缓存可以掩盖内存的许多缺陷,但并非全部。组装电脑时,选择合适的内存频率、延迟和容量至关重要,必须满足其预期用途。办公或轻度网页浏览的电脑使用 8-16 GB 的中端内存即可满足需求,而对于游戏和视频编辑,通常建议使用 16 GB 或 32 GB 的内存。

始终建议检查内存与主板和CPU的兼容性(例如DDR3、DDR4、DDR5类型,支持的最大频率,XMP/EXPO配置文件等)。此外,最好在高频和合理的时序之间找到平衡点,而不是仅仅关注炫目的MHz数值。

为了最大限度地利用内存和缓存,保持系统后台运行的程序干净,避免不必要的后台程序,更新BIOS和驱动程序,以及在高频使用的电脑上删除不再使用的临时文件和浏览器缓存,都会大有帮助。任何能够减轻内存和CPU压力的措施,都有助于释放这些资源,用于真正重要的任务。

在 BIOS 级别,启用自动内存配置文件(XMP、DOCP、EXPO)通常是确保 RAM 以制造商承诺的速度运行的简单方法,避免被限制在限制带宽的保守值上。

了解缓存延迟的工作原理、其 L1/L2/L3 层次结构、与 RAM 的关系以及 3D V-Cache 等技术,可以让你以全新的视角解读 CPU 规格和基准测试结果:除了 GHz 和核心数之外,系统的大部分流畅性取决于处理器在其最近的内存中查找或找不到数据所需的那几纳秒时间。