旁观缓冲区 (Look aside Buffer)


什么是旁观缓冲区?

旁观缓冲区 (LAB) 是一种用于计算机系统中存储频繁访问数据的缓存内存。LAB 位于 CPU 和主内存之间,充当高速缓冲区以提高系统性能。

LAB 的工作原理是缓存主内存中 CPU 频繁访问的部分数据。当 CPU 请求主内存中的数据时,LAB 首先检查缓冲区中是否存在该数据。如果在 LAB 中找到数据,则立即将其检索并发送到 CPU,这与从主内存中提取数据相比,可以显著减少访问时间。

旁观缓冲区在哪里使用?

LAB 通常用于主内存访问时间较慢的计算机系统(例如硬盘驱动器)中,以提高系统的整体性能。它也用于虚拟内存系统中,在其中存储频繁访问的页面以减少页面错误并提高性能。

转换旁观缓冲区 (TLB)

转换旁观缓冲区 (TLB) 是一种特殊的缓存类型,可以帮助处理器快速访问最近使用的数据。它存储最近访问的页表条目,并帮助处理器在给定虚拟地址时快速检索帧号并形成实际地址。

当处理器在 TLB 中查找虚拟地址时,它要么找到页表条目(称为 TLB 命中),要么找不到(称为 TLB 未命中)。如果是命中,处理器将检索帧号并形成实际地址。如果是未命中,则在处理页表时将页号用作索引。TLB 首先检查所需页面是否已存在于主内存中。如果不存在,则发出页面错误,并更新 TLB 以包含新的页面条目。

TLB 比主内存更快更小,但比寄存器更便宜更大。它用作高速关联缓存,用于减少有效内存访问时间 (EMAT)。EMAT 使用 TLB 的命中率、内存访问时间和 TLB 访问时间计算。

在场景 1 中,TLB 找到相关虚拟地址的页表条目,并返回相应的物理地址供 CPU 访问主内存。这是 TLB 命中。

在场景 2 中,TLB 未找到相关虚拟地址的页表条目,因此它将页号发送到 CPU 以在页表中查找。如果页面不存在于主内存中,则会发生页面错误,并且 TLB 将使用新的页面条目进行更新。这是 TLB 未命中。

局部性原理

  • TLB 只包含频繁访问页面的条目

  • 遵循局部性原理

操作系统转换旁观缓冲区

  • TLB 使用标签和键进行映射

  • 当在 TLB 中找到所需条目时发生 TLB 命中

  • 如果发生 TLB 命中,CPU 可以访问主内存中的实际位置

  • 如果发生 TLB 未命中,CPU 必须访问主内存中的页表,然后访问实际帧

  • TLB 命中率会影响有效访问时间 (EAT)

  • 可以通过提高 TLB 命中率来降低 EAT

分页的缺点

  • 页表大小可能非常大,浪费主内存

  • CPU 从主内存读取单个字需要更多时间

  • 可以通过增加页面大小来减小页表大小,但这会导致内部碎片和页面浪费

  • 多级分页会增加有效访问时间

  • 使用存储在内部的页表的寄存器可以减少访问时间,但与页表大小相比,寄存器价格昂贵且空间小

转换旁观命中和未命中的访问时间

有效访问时间 (EAT)

TLB 用作高速关联缓存,用于减少有效内存访问时间。

  • TLB 可以通过减少访问页表的时间来降低 EAT

  • EAT 公式:EAT = P(t + m) + (1 - P)(t + k.m + m)

  • P = TLB 命中率,t = 访问 TLB 的时间,m = 访问主内存的时间,k = 单级分页为 1

  • 提高 TLB 命中率会降低 EAT

  • 多级分页会增加 EAT

结论

分页是操作系统中的一种内存管理技术,它将内存划分为页面,并将进程划分为块。但是,页表的大小可能会变得非常大,从而浪费内存并增加访问时间。转换旁观缓冲区 (TLB) 充当常用页表条目的高速缓存,从而减少页表的有效访问时间。TLB 命中率会影响有效访问时间,提高它会减少访问时间。TLB 比主内存更快更小,但比寄存器更便宜更大。总的来说,TLB 在减少内存访问时间和提高系统性能方面起着至关重要的作用。

更新于:2023年7月25日

311 次浏览

启动你的职业生涯

完成课程获得认证

开始学习
广告