翻译旁视缓冲器

2025年3月17日 | 阅读 3 分钟

分页的缺点

  1. 页表的大小可能非常大,因此会浪费主内存。
  2. CPU从主内存读取单个字需要更多时间。

如何减小页表大小

  1. 可以通过增加页面大小来减小页表大小,但这会导致内部碎片,并且还会造成页面浪费。
  2. 另一种方法是使用多级分页,但这会增加有效访问时间,因此这不是一种实用的方法。

如何减少有效访问时间

  1. CPU可以使用一个内部存储页表的寄存器,这样访问页表的访问时间可以大大减少,但寄存器不便宜,而且与页表大小相比非常小,因此,这也不是一种实用的方法。
  2. 为了克服分页中的诸多缺点,我们必须寻找一种比寄存器便宜、比主内存更快的内存,这样CPU反复访问页表所花费的时间就可以减少,并且它可以只专注于访问实际的字。

局部性原理

在操作系统中,局部性原理指出,操作系统不必将整个进程加载到主内存中,而可以只加载CPU频繁访问的那些页面到主内存中,同时,操作系统也可以只加载与这些页面对应的页表条目。

翻译旁视缓冲器 (TLB)

翻译旁视缓冲器可以定义为一种内存缓存,用于减少反复访问页表所花费的时间。

它是一个靠近CPU的内存缓存,CPU访问TLB所花费的时间比访问主内存的时间更少。

换句话说,我们可以说TLB比主内存更快更小,但比寄存器更便宜更大。

TLB遵循局部性原理,这意味着它只包含CPU频繁访问的那些页面的条目。


OS Translation Look aside buffer

在翻译旁视缓冲器中,有标签和键,借助它们完成映射。

TLB命中是指在翻译旁视缓冲器中找到了所需的条目。如果发生这种情况,CPU只需访问主内存中的实际位置。

然而,如果在TLB中没有找到条目(TLB未命中),那么CPU必须访问主内存中的页表,然后访问主内存中的实际帧。

因此,在TLB命中情况下,有效访问时间将比TLB未命中情况更少。

如果TLB命中概率为P%(TLB命中率),那么TLB未命中概率(TLB未命中率)将为(1-P)%。

因此,有效访问时间可以定义为;

其中,p → TLB命中率,t → 访问TLB所需时间,m → 访问主内存所需时间 k = 1,如果已实现单级分页。

通过公式我们得知

  1. 如果TLB命中率增加,有效访问时间将减少。
  2. 在多级分页情况下,有效访问时间将增加。