Operating system 操作系统-TLB

Operating system 操作系统-TLB,operating-system,tlb,Operating System,Tlb,我正努力想弄明白这一点(好吧,考试前一天晚上临时抱佛脚:),但我不明白这一点(在网上也找不到一个好的高层次概述): '页表项可以映射到多个TLB项。。例如,如果每个页表条目都映射到两个TLB条目,则称为双向集合关联TLB' 我的问题是,为什么我们要不止一次地绘制这个地图?当然,我们希望在TLB中显示最大数量的可能条目,而重复会浪费空间,对吗?我错过了什么 非常感谢这并不意味着将同一条目加载到表中的两个位置,而是意味着可以将特定条目加载到表中的两个位置之一。另一种方法是直接映射TLB,您只能将条目

我正努力想弄明白这一点(好吧,考试前一天晚上临时抱佛脚:),但我不明白这一点(在网上也找不到一个好的高层次概述):

'页表项可以映射到多个TLB项。。例如,如果每个页表条目都映射到两个TLB条目,则称为双向集合关联TLB'

我的问题是,为什么我们要不止一次地绘制这个地图?当然,我们希望在TLB中显示最大数量的可能条目,而重复会浪费空间,对吗?我错过了什么


非常感谢

这并不意味着将同一条目加载到表中的两个位置,而是意味着可以将特定条目加载到表中的两个位置之一。另一种方法是直接映射TLB,您只能将条目映射到表中的一个位置

直接映射TLB的主要缺点是,如果要从内存的一部分复制到另一部分,并且(通过CPU使用的任何直接映射方案)两者的转换必须映射到TLB中的同一点。在这种情况下,您每次都会重新加载TLB条目,因此TLB的作用很小或根本没有作用。通过双向设置关联TLB,您可以保证任意两个条目可以同时位于TLB中,因此(例如)从a点到B点的块移动不会破坏您的一天——但如果您从两个区域读取数据,将它们合并,并将结果写入第三个区域,则可能会发生这种情况(如果所有三个使用的翻译映射到同一组TLB条目)

具有多路TLB的缺点(与任何其他多路缓存一样)就是你不能直接计算在给定的时间内哪个位置可能保存一个特定的条目——你基本上是通过各种方式搜索来找到正确的条目。对于双向,这很少是一个问题——但四种方式通常是有用的限制;8路集合关联(TLBs |缓存)一点也不常见,部分原因是在8个可能的位置搜索数据开始变得过度

但是,随着时间的推移,在缓存或tlb中使用有意义的方式的数量会增加。内存和处理器之间的速度差异会继续增加。差异越大,CPU可以使用的周期就越多,并且在单个内存时钟周期内仍能产生结果(或指定数量的内存时钟周期,即使不止一个)