一句话:提出弹性布谷鸟页表,将多级基数页表的串行指针追逐改为并行查找,显著降低地址翻译开销。
内存密集型工作负载使虚拟内存地址翻译成为主要性能瓶颈。本文提出弹性布谷鸟页表(Elastic Cuckoo Page Tables),将传统多级基数页表的串行指针追逐转化为完全并行的查找,从而首次在地址翻译中利用内存级并行性。其核心是弹性布谷鸟哈希(Elastic Cuckoo Hashing),一种支持页表高效扩缩容的布谷鸟哈希扩展,可高效解决哈希冲突,支持进程私有页表、多种页大小、进程间页共享,并根据应用需求动态调整页表大小。作者在8核处理器全系统模拟上,用图分析、生物信息、HPC和系统工作负载评估。结果显示,地址翻译开销平均降低41%,应用执行加速3%–18%。
The unprecedented growth in the memory needs of emerging memory-intensive workloads has made virtual memory translation a major performance bottleneck. To address this problem, this paper introduces Elastic Cuckoo Page Tables, a novel page table design that transforms the sequential pointer-chasing operation used by conventional multi-level radix page tables into fully-parallel look-ups. The resulting design harvests, for the first time, the benefits of memory level parallelism for address translation. Elastic cuckoo page tables use Elastic Cuckoo Hashing, a novel extension of cuckoo hashing that supports efficient page table resizing. Elastic cuckoo page tables efficiently resolve hash collisions, provide process-private page tables, support multiple page sizes and page sharing among processes, and dynamically adapt page table sizes to meet application requirements. We evaluate elastic cuckoo page tables with full-system simulations of an 8-core processor using a set of graph analytics, bioinformatics, HPC, and system workloads. Elastic cuckoo page tables reduce the address translation overhead by an average of 41% over conventional radix page tables. The result is a 3-18% speed-up in application execution.