As memory capacity has outstripped TLB coverage, large data applications suffer from frequent page table walks. We investigate two complementary techniques for addressing this cost: reducing the number of accesses required and reducing the latency of each access. The first approach is accomplished by opportunistically "flattening" the page table: merging two levels of traditional 4KB page table nodes into a single 2MB node, thereby reducing the table's depth and the number of indirections required to search it. The second is accomplished by biasing the cache replacement algorithm to keep page table entries during periods of high TLB miss rates, as these periods also see high data miss rates and are therefore more likely to benefit from having the smaller page table in the cache than to suffer from increased data cache misses. We evaluate these approaches for both native and virtualized systems and across a range of realistic memory fragmentation scenarios, describe the limited changes needed in our kernel implementation and hardware design, identify and address challenges related to self-referencing page tables and kernel memory allocation, and compare results across server and mobile systems using both academic and industrial simulators for robustness. We find that flattening does reduce the number of accesses required on a page walk (to 1.0), but its performance impact (+2.3%) is small due to Page Walker Caches (already 1.5 accesses). Prioritizing caching has a larger effect (+6.8%), and the combination improves performance by +9.2%. Flattening is more effective on virtualized systems (4.4 to 2.8 accesses, +7.1% performance), due to 2D page walks. By combining the two techniques we demonstrate a state-of-the-art +14.0% performance gain and -8.7% dynamic cache energy and -4.7% dynamic DRAM energy for virtualized execution with very simple hardware and software changes.


翻译:由于记忆能力超过了 TLB 的覆盖范围, 大量数据应用会因频繁的虚拟表格走过而受到影响。 我们调查了两种应对这一成本的补充技术: 减少所需的访问次数, 降低每次访问的延迟度。 第一个办法是机会性地“ 缩放” 页面表格表格: 将传统 4KB 表格节点的两层合并为单一的 2MB 节点, 从而降低表格的深度和搜索所需的间接值。 第二个是偏向缓存替换算法, 以便在高TLB误差率期间保留页面条目。 因为这些时期也看到高数据误差率, 因而更有可能从缓存中的较小页表格中获益, 而不是因为数据误存率增加误差。 我们评估了本地和虚拟化的系统以及一系列现实的内存碎裂情景中的这些方法, 描述了我们内存软件实施和硬件设计中所需的有限变化, 确定并应对与自我参照页面表格和内存的内存分配有关的挑战, 并且用学术和工业模拟器的到期的存结果, 。 (我们发现, 正在将使用双级的平坦的性读的性操作的性操作, 将软化的性操作的性性能效果减少性能, 。

0
下载
关闭预览

相关内容

Linux导论,Introduction to Linux,96页ppt
专知会员服务
77+阅读 · 2020年7月26日
简明扼要!Python教程手册,206页pdf
专知会员服务
47+阅读 · 2020年3月24日
 第八届中国科技大学《计算机图形学》暑期课程课件
专知会员服务
55+阅读 · 2020年3月4日
《DeepGCNs: Making GCNs Go as Deep as CNNs》
专知会员服务
30+阅读 · 2019年10月17日
[综述]深度学习下的场景文本检测与识别
专知会员服务
77+阅读 · 2019年10月10日
【SIGGRAPH2019】TensorFlow 2.0深度学习计算机图形学应用
专知会员服务
39+阅读 · 2019年10月9日
已删除
将门创投
7+阅读 · 2018年8月28日
Arxiv
0+阅读 · 2021年10月25日
Arxiv
0+阅读 · 2021年10月20日
Arxiv
6+阅读 · 2020年3月16日
Arxiv
3+阅读 · 2017年11月20日
VIP会员
相关资讯
已删除
将门创投
7+阅读 · 2018年8月28日
相关论文
Top
微信扫码咨询专知VIP会员