什么是TLB击球?

时间:2010-09-20 02:40:02

标签: caching operating-system tlb smp

什么是SMP中的TLB击落?

我无法找到有关此概念的更多信息。任何好的例子都会非常感激。

3 个答案:

答案 0 :(得分:98)

TLB(Translation Lookaside Buffer)是从虚拟内存地址到物理内存地址的转换缓存。当处理器更改地址的虚拟到物理映射时,它需要告知其他处理器使其缓存中的映射无效。

这个过程被称为“TLB击落”。

答案 1 :(得分:56)

一个简单的例子:

  1. 您的系统中的所有处理器共享了一些内存。

  2. 您的某个处理器限制访问该共享内存的页面。

  3. 现在,所有处理器都必须刷新TLB,以便允许访问该页面的TLB不再这样做。

  4. 一个处理器导致TLB在其他处理器上刷新的操作就是所谓的TLB击落。

答案 2 :(得分:6)

我认为这个问题需要更详细的答案。

页表:存储虚拟内存(软件)和物理内存(硬件)之间映射的数据结构

然而,页表可能非常大并且遍历页表(以找到虚拟地址的对应物理地址)可能是耗时的过程。为了使这个过程更快,使用了一个名为TLB(Translation Lookaside Buffer)的缓存,它存储了最近访问的虚拟内存地址。

可以清楚地看到 TLB条目需要始终与其各自的页表条目同步。现在 TLB是每核心缓存即。每个核心都有自己的TLB。

每当任何核心修改页表条目时,该特定TLB条目在所有核中都无效。这个过程称为TLB击落。

TLB刷新可以通过各种虚拟内存操作触发,这些操作可以更改页面表条目,例如页面迁移,释放页面等。