栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

linux内存管理: TLB

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux内存管理: TLB

声明:所有文章都是当作学习笔记使用的,如有侵权还请告知删除,谢谢!

TLB的全称是Translation Lookaside Buffer,我们知道,处理器在取指或者执行访问memory指令的时候都需要进行地址翻译,即把虚拟地址翻译成物理地址。而地址翻译是一个漫长的过程,需要遍历几个level的Translation table,从而产生严重的开销。为了提高性能,我们会在MMU中增加一个TLB的单元,把地址翻译关系保存在这个高速缓存中,从而省略了对内存中页表的访问。

当需要转换VA到PA的时候,首先在TLB中找是否有匹配的条目,如果有,那么我们称之TLB hit,这时候不需要再去访问页表来完成地址翻译。不过TLB始终是全部页表的一个子集,因此也有可能在TLB中找不到。如果没有在TLB中找到对应的item,那么称之TLB miss,那么就需要去访问memory中的page table来完成地址翻译,同时将翻译结果放入TLB,如果TLB已经满了,那么还要设计替换算法来决定让哪一个TLB entry失效,从而加载新的页表项。简单的描述就是这样了,我们可以对TLB entry中的内容进行详细描述,它主要包括:

  • (1) 物理地址(更准确的说是physical page number)。这是地址翻译的结果。
  • (2) 虚拟地址(更准确的说是virtual page number)。用cache的术语来描述的话应该叫做Tag,进行匹配的时候就是对比Tag。
  • (3) Memory attribute(例如:memory type,cache policies,access permissions)
  • (4) status bits(例如:Valid、dirty和reference bits)
  • (5) 其他相关信息。例如ASID、VMID,下面的章节会进一步描述。

和TLB flush操作相关的接口API主要包括:

1、 void flush_tlb_all(void)   这个接口用来invalidate TLB cache中的所有的条目

2、 void flush_tlb_mm(struct mm_struct *mm)  这个接口用来invalidate TLB cache中所有和mm这个进程地址空间相关的条目。

3、void flush_tlb_page(struct vm_area_struct *vma, unsigned long addr)  flush_tlb_page接口函数对addr对应的TLB entry进行flush操作。

4、 void flush_tlb_range(struct vm_area_struct *vma, unsigned long start, unsigned long end)

ARM64并没有直接flush一个range的硬件操作接口,因此,在ARM64的代码中,flush一个range是通过flush一个个的page来实现的。

六、推荐阅读

《Linux内存管理:TLB flush操作》

《Linux内存管理:内存描述之内存节点node》

《Linux内存管理:内存描述之内存区域zone》

《Linux内存管理:内存描述之内存页面page》

《Linux内存管理:内存描述之高端内存》

《Linux内存管理:分页机制》

《内存管理:Linux Memory Management:MMU、段、分页、PAE、Cache、TLB》

《Linux内存管理:分页机制》

《Linux内存管理:ARM64体系结构与编程之cache(1)》

《Linux内存管理:ARM64体系结构与编程之cache(2):cache一致性》

《Linux内存管理:ARM64体系结构与编程之cache(3):cache一致性协议(MESI、MOESI)、cache伪共享》

《ARM SMMU原理与IOMMU技术(“VT-d” DMA、I/O虚拟化、内存虚拟化)》

《内核引导参数IOMMU与INTEL_IOMMU有何不同?》

《提升KVM异构虚拟机启动效率:透传(pass-through)、DMA映射(VFIO、PCI、IOMMU)、virtio-balloon、异步DMA映射、预处理》

《Linux内存管理:内存寻址之分段机制与分页机制》

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/341871.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号