我有一项任务是了解TLB缓存中的方法数量。我应该使用哪种算法?
答案 0 :(得分:0)
关于您需要帮助的问题有点不清楚,所以这是与您提到的主题相关的信息摘要。
有两种“方式”到达内存 - 直接映射,其中页表保存在内存中并由虚拟页码索引。要从虚拟页码转换为实际页码,操作系统将转到页表的基地址并添加虚拟页码。此位置的值提供页面的真实地址。
另一种方式是关联映射。关联映射将页表保持在内容寻址的内存中,因此当查找虚拟地址时,将并行搜索所有进程的页面,从而产生O(1)查找时间复杂度。另一个优点是,它只存储实际分配的页面。
问题在于关联映射需要特殊的硬件来完成内容寻址的内存。
所以权衡是使用少量的内容寻址内存(TLB =您在问题中引用的转换后备缓冲区),大多数使用直接映射。
然后,最重要的考虑因素是何时在TLB中放置一个地址,哪个旧地址从TLB中逐出。为此,有许多选择:最有可能是最近最少使用(LRU)来利用时间局部性。其他选择可能是Least Frequently Used,Round Robin(这里可能不太好),WS_Clock等。