Hybrid TLB Coalescing: Improving TLB Translation Coverage under Diverse Fragmented Memory Allocations
-
摘要:
- 背景:
- 在大的存储类应用程序中,会出现很多TLB缺失,因此出现了一些技术(大页,变长段variable length segments,硬件合并TLB表项)用来增加有限硬件资源的TLB的覆盖范围,这些技术主要依赖于连续的内存分配策略
- 问题:在异构存储系统中,使用大页经常导致性能下降或者是更加难以分配大页,并且之前的技术都需要最优的块大小,而现实中,内存的分配并不能够提供这种完美的块大小
- 论文工作:为缓解碎片化和多样化存储分配情况下的TLB缺失,提出了软硬件混合的地址翻译结构,能够高效的适应不同的存储映射
- 论文提出的混合合并策略中,OS在分配连续存储的信息存放在页表项的子集中,这些页表项称为锚表项(anchor entry)
- 在地址翻译的过程中,锚项可以提供在其之后的连续的页的地址翻译。因此少量的锚项可以覆盖很大的虚拟地址空间的翻译,从而改进TLB的覆盖范围
- 混合合并策略最重要的优点在于能够动态的改变锚项的覆盖范围,从而反映出当前分配连续性的状态
- 优点:通过OS直接设置的内存分配的连续性信息,论文在很小的硬件改动下,可以提供可伸缩的TLB地址翻译覆盖范围的改进,同时允许灵活的内存分配
- 背景:
-
介绍:
- 改进TLB地址翻译效率的两类方法:
- 改进覆盖范围,在给定面积和功耗预算的情况下,提升TLB翻译的覆盖范围
- 减少TLB缺失的代价
- 改进TLB覆盖范围的技术
- 增加页的大小(最为常见)。在商业x86处理器中,同时支持4KB,2MB和1GB的页大小
- 变长的HW段翻译替代基于页的地址翻译,依赖于OS能否为每一个段分配连续的大存储区域
- 基于硬件的合并技术(CoLT和cluster TLB),将多个页面的地址翻译合并到一个TLB表项中,只要页面的物理地址在一个连续的区域中,OS不需要保证一定要分配固定大小的页面
- 内存分配的灵活性(allocation flexibility)和地址翻译覆盖范围的伸缩性(scalability of translation coverage)
- 增加页大小:限制了覆盖范围的伸缩性
- 可变硬件段:覆盖范围的伸缩性最好,但是分配策略需要更加的严格,才能够得到好处
- 硬件合并:允许灵活的分配,但是覆盖范围被限定在4或8页面(由于是硬件实现)
- NUMA存储系统中的新问题:
- 在NUMA中连续的内存分配并不总是可能,并且可能会降低性能
- 存储的异构型要求细粒度的存储映射,以保证将频繁使用的页面放在更快更近的地方,因此很难分配大的连续内存块
- 为了适应多样的内存分配场景,论文提出了混合的地址翻译技术(hybrid coalescing),以改进地址翻译的覆盖范围
- 锚项是每N个页表项上指定的一个表项,包含着内存连续分配的信息,即能够指示该
- 改进TLB地址翻译效率的两类方法: