完全关联和 Set Associative TLB 操作与缓存相比

Fully associative and Set Associative TLB operations compared to cache

我正在查看 ARM 处理器 (ARMv7) 的 MMU 代码。他们使用了全关联和集合关联 TLB。我知道使用此方法实现缓存。我还读到 TLB 只不过是 CPU 缓存。但是由于 TLB 和缓存的目的不同,我无法加入这些部分。我想知道 set 和 Full associativity 在 TLB 的上下文中是如何工作的。

这是全局相同的行为:TLB 使用虚拟地址和大小作为标记,但不是存储数据,而是存储关联页的属性(物理地址、保护等)。

Set associative 只是意味着有限数量的页面可以共享相同的 tag/attributes,而 full associative 意味着 tag/attribute 可以存储在 TLB 缓存中的任何位置。这样效率要高得多,但这只能用于非常小的缓存。