1

我的任务是学习 TLB 缓存中的方式数量。我应该使用哪种算法?

4

1 回答 1

0

这个问题有点不清楚你需要什么帮助,所以这是与你提到的主题相关的信息摘要。

有两种“方式”可以进入内存——直接映射,页表保存在内存中并由虚拟页号索引。为了从虚拟页号转换为实际页号,操作系统转到页表的基地址并添加虚拟页号。这个位置的值给出了页面的真实地址。

另一种方式是关联映射。关联映射将页表保存在内容寻址内存中,因此当查找虚拟地址时,会并行搜索所有进程的页,从而给出 O(1) 查找时间复杂度。另一个优点是它只存储实际分配的页面。

问题是关联映射需要特殊的硬件来完成内容寻址存储器。

因此,权衡是使用少量内容寻址内存(您在问题中提到的 TLB = 翻译后备缓冲区),大多数使用直接映射。

那么重要的考虑是什么时候在 TLB 中放置一个地址,以及从 TLB 中驱逐哪个旧地址。为此有很多选择:很可能是最近最少使用(LRU)来利用时间局部性。其他选择可能是最不常用、轮询(这里可能不太好)、WS_Clock 等。

于 2012-01-28T08:33:05.547 回答