在计算中,高速缓存(cache)是存储数据的硬件或软件组件,以便可以更快地满足对该数据的将来请求。存储在缓存中的数据可能是早期计算的结果,也可能是存储在其他位置的数据的副本。

CPU高速缓存是由计算机的中央处理器(CPU)使用的硬件缓存,用于降低从主内存访问数据的平均成本(时间或能量)。缓存是一种更小、更快的内存,位于更靠近处理器核心的位置,存储来自经常使用的主内存位置的数据副本。

大多数cpu都有不同的独立缓存,包括指令缓存和数据缓存,其中数据缓存通常组织为多个缓存级别(L1、L2、L3、L4等)的层次结构。

所有现代(快速)CPU(除了少数特殊的例外)都有多个级别的CPU缓存,第一个使用缓存的cpu只有一级缓存。与后来的一级缓存不同,它没有被分成L1d(用于数据)和L1i(用于指令)。

分离式L1高速缓冲存储器始于1985年的R2000 MIPS处理器,1993年的英特尔奔腾处理器成为主流,1997年的ARMv5TE处理器成为嵌入式CPU市场的主流。在2015年,甚至低于美元的SoC也分裂了L1缓存。

它们还有L2缓存,对于较大的处理器,还有L3缓存。L2缓存通常不被分割,它充当已经分割的L1缓存的公共存储库。多核处理器的每个核心都有一个专用的L1缓存,通常不会在核心之间共享。

L2缓存和更高级的缓存可以在核心之间共享,L4缓存目前并不常见,通常是在(一种形式的)动态随机访问内存(DRAM)上,而不是在静态随机访问内存(SRAM)上,在一个单独的die或chip上(例外情况下,该形式的eDRAM用于从L1到所有级别的缓存)。

历史上L1也是这种情况,而更大的芯片允许集成它和所有的缓存级别,最后一层可能除外。每一个额外的缓存级别都趋向于更大,并以不同的方式优化。

存在其他类型的缓存(它们不计入上面提到的最重要的缓存的“缓存大小”),比如translation lookaside buffer (TLB),它是大多数cpu拥有的内存管理单元(MMU)的一部分。

缓存(如历史上的RAM)的大小通常是2、4、8、16等。简约;当达到MiB大小(即更大的非l1)时,该模式很早就被打破了,以允许更大的缓存,而不必被迫采用双倍大小的模式,例如2008年4月Intel Core 2 Duo与3 MiB L2缓存。

然而L1大小,很久以后仍然只数在小数量的简约,然而IBM zEC12从2012年是一个例外,96年获得极大的简约L1数据缓存的时间,如IBM z13有96简约L1指令缓存(128简约L1数据缓存)和英特尔冰Lake-based处理器从2018年开始,有48个简约L1数据缓存和48简约L1指令缓存。