CPU 缓存和 TLB 有何区别?

2025年1月7日 | 阅读 4 分钟

引言

高效快速的现代计算由 CPU 缓存和 TLB(转换旁路缓冲器)这对组合促成。尽管都被称为缓存,但深入探究其细节会发现,它们在提高计算系统内存访问效率方面有着不同的贡献。

CPU 缓存

CPU 缓存是位于主内存(RAM)和 CPU 之间的一个快速缓冲区。其主要目的是减少从主内存到 CPU 寄存器的获取过程中的延迟。CPU 缓存主要分为两类:I-缓存和 D-缓存。首先,I-缓存用于存储可执行指令;同时,D-缓存提供数据。这两者结合起来可以加速指令和数据的处理。

缓存级别

What's difference between CPU Cache and TLB

大多数现代处理器通常具有多层缓存,表示为 L1、L2,有时还有 L3。L1 缓存占用空间最小,位于处理器芯片本身。处理器核心共享更大的 L2 缓存和访问速度更快的 L3 缓存。

缓存替换策略

LRU 或随机替换等缓存替换策略决定了缓存如何处理其内容以加载新信息。通过这些策略,最相关的信息被保留在缓存中以实现最佳效率。

缓存一致性

在多核系统中维护缓存一致性对于消除各种缓存集之间的不一致性至关重要。用于维护缓存一致性的协议包括修改、独占共享、无效和独占共享(MESI)。

例如,当我们深入研究 D-缓存时,它通常包括一个分层组织,如(L1)、(L2),有时还会达到(L3)。这是基于速度、大小和成本的,其中 L1 D-缓存最快但最小。主要目的是缩短从主内存检索数据的响应时间,并提高处理器的整体性能。

TLB

另一方面,转换旁路缓冲器(TLB)在虚拟内存处理器中至关重要。例如,它通过使用高速存储器快速将虚拟地址转换为物理地址。TLB 是位于 CPU 和主内存之间的另一个硬件组件,类似于 CPU 缓存。

每当需要将虚拟地址转换为物理地址时,MMU 就会发出 TLB 调用。TLB 将此映射保存在一个快速内存缓冲区中,从而加快对监控虚拟页位置的 RAM 中页表的访问速度。
它可能被视为 TLB——页表条目的缓存——用于页到实际地址的映射,但它主要用于加速虚拟地址到物理地址的转换。这意味着每个地址不必涉及访问页表,从而使内存访问更加简洁。

虚拟内存和分页

程序能够通过使用称为虚拟内存的概念来运行,就好像有更多内存一样。分页,也称为页交换,是指将内存分成固定大小的段,这些段称为页。TLB 用于保存虚拟页到物理页的映射,这样 CPU 就不必每次都查找页表。

TLB 命中和未命中

当处理器请求单个虚拟地址处的特定数据时,会查询 TLB。如果 TLB 具有该特定虚拟地址的映射(TLB 命中),则会立即找到物理地址。如果 TLB 中没有特定页的条目,则处理器将需要访问实际的页表,这会带来额外的延迟。

TLB 页表遍历

如果发生 TLB 未命中(称为页表遍历),CPU 会在页表中查找所需的映射。然后,将其存储到 TLB 中作为未来的参考。有效的 TLB 管理有助于减轻整个机器中 TLB 未命中的负面影响。

在计算机体系结构领域,CPU 缓存和 TLB 是效率的两个支柱,它们在计算机内存访问和处理的不同方面运行。CPU 缓存减少了数据访问的延迟时间,而转换旁路缓冲器(TLB)确保了虚拟地址和物理地址之间的平滑转换。系统设计人员、程序员以及对现代计算系统内部机制感兴趣的每个人都必须了解这些元素之间的区别。

区别表

特性CPU 缓存TLB
定义和目的中央处理器缓存转换旁路缓冲器
功能通过存储频繁访问的指令和数据来减少延迟促进虚拟到物理地址转换
示例L1 缓存、L2 缓存、L3 缓存L1 TLB
访问速度比访问主内存快得多比访问主内存快得多
大小和位置通常范围从几 KB 到几 MB,位于处理器芯片上或单独的模块中通常比缓存小得多,范围从几个条目到几千个条目,位于处理器芯片上或单独的模块中
未命中惩罚高,需要访问较慢的内存才能检索数据高,需要访问较慢的内存才能检索映射信息
实施硬件硬件 + 软件
命中率通常很高,通常高于 95%通常很高,通常高于 95%

结论

最后,CPU 缓存和 TLB 虽然都旨在提高内存寻址效率,但它们是为内存层次结构的不同部分设计的。CPU 缓存通过存储频繁访问的指令和/或数据来最小化延迟,而 TLB 则加快虚拟到物理地址的转换。这两个组件的有效实现带来了完美的协调,从而推动了当前计算机系统的创新。希望获得更多计算效率的系统设计人员和程序员应该学会区分 CPU 缓存和 TLB 之间的细微差别。


下一主题Amigaos