TLB是什么?有何作用

描述

TLB就是Translation Lookaside Buffer ,很多文章翻译成“旁路转换缓冲”

老实说,不知所云,不如不去翻译,就当个专有名词,理解它的含义就好了。

Translation Lookaside Buffer (TLB) 是 MMU 中的cache,其缓存的内容就是页表项(某个VA-PA的映射关系)。

在内存需要进行VA-PA转换时,MMU首先会在TLB中检查是否有页表项被缓存。如果TLB hit,那么TLB就能立即完成VA-PA的转换。如果TLB miss,即TLB中没有该VA对应的VA-PA映射关系,所以就需要到外部主存获取这个VA-PA转换关系,并将这个转换关系缓存到TLB中以加速下一次VA-PA转换。

micro-TLB

类似于L1 cache和L2 cache的层次结构,一般还有micro-TLB和TLB。如果页表访问在micro-TLB中hit,那么就不需要访问外面的内存。但是,micro-TLB能够缓存的页表映射有限,所以其后级往往有一个更大的main TLB。

MMU

TLB与其他cache类似,只不过其他cache缓存的是指令或者数据,而TLB缓存的是VA-PA映射关系,当TLB hit即可完成VA-PA转换。

软件异常

一般TLB只会缓存有效的VA-PA映射关系,如果这个映射关系是无效的,就需要上报异常让软件处理。

TLB一致性 & invalid

TLB一致性,同样类似于cache的一致性。

当操作系统更改页表时,TLB中就可能包含旧的无效映射关系。操作系统必须采取措施invalid TLB中的缓存的页表项。

不同的结构实现可能会专门地去invalid特性的cacheline,比如特定ASID或者特定VA。


审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分