资讯

高速缓存 Cache 是什么?处理器和内存之间的高速中转站

2026-11-052 分钟阅读百科
TL;DR高速缓冲存储器(Cache)是位于处理器和主内存之间、容量小但速度极快的存储器,用来存放最近或即将频繁使用的数据和指令,利用程序的局部性原理减少访问慢速内存的次数,通常分为 L1、L2、L3 多级;“缓存”的思想也广泛用于网页、数据库和大模型推理。

高速缓冲存储器(Cache),简称缓存,是位于处理器和主内存之间的一种容量较小、但速度非常快的存储器。它用来存放处理器最近使用过、或者即将使用的数据和指令,让处理器能够更快地拿到需要的数据,从而提高计算机的整体运行速度。

为什么需要缓存

处理器的运算速度非常快,而主内存的速度要慢得多,两者之间存在巨大的速度差距。如果处理器每次需要数据都要去主内存中读取,就会有大量的时间浪费在等待上,就像一位厨师炒菜很快,但每次需要一样调料都要跑到仓库去拿。缓存就像在灶台旁边放一个小调料架,把最常用的调料放在手边,大部分时候伸手就能拿到,不用跑去仓库。

为什么小容量的缓存能起大作用

缓存的容量远远小于主内存,却能发挥很大的作用,这依赖于程序运行时的“局部性原理”。时间局部性:最近被访问过的数据,很可能在不久之后再次被访问,比如循环中反复使用的变量。空间局部性:一个数据被访问后,与它相邻的数据也很可能很快被访问,比如按顺序读取一个数组。因此,缓存会保留最近用过的数据,并且每次从内存中读取一小块连续的数据。当处理器需要的数据正好在缓存中,叫作“命中”,可以很快地拿到;如果不在,叫作“未命中”,就需要去更慢的内存中读取,并把它放入缓存。缓存满了以后,需要按照一定的策略淘汰旧的数据,比如淘汰最久没有使用过的数据。

多级缓存

现代处理器通常有多级缓存:一级缓存(L1)离处理器核心最近,速度最快,但容量最小,通常只有几十 KB,并且分为存放指令和存放数据两部分;二级缓存(L2)容量更大一些,速度稍慢;三级缓存(L3)容量更大,可达几十 MB 甚至更多,通常由多个核心共享。处理器需要数据时,先在一级缓存中找,找不到再去二级、三级缓存,最后才去主内存。在多核处理器中,还需要保证各个核心的缓存中同一份数据保持一致,这叫缓存一致性。

无处不在的“缓存”思想

“把常用的数据放在更快、更近的地方”这一思想被广泛地应用在计算机的各个领域:浏览器缓存,把访问过的网页资源保存在本地,下次打开更快;内容分发网络,把网站的内容缓存到离用户更近的服务器上;数据库和应用中常用的 Redis 等缓存系统,把热门的数据放在内存中,减轻数据库的压力。在大模型推理中,KV 缓存保存已经计算过的注意力键值,避免重复计算;很多大模型接口提供的“提示词缓存”,会复用相同前缀的计算结果,降低成本和延迟。