一句话:提出首个支持并行嵌套地址转换的页表设计,用嵌套弹性布谷鸟哈希页表将最多24步串行访存降至3步,平均加速1.19–1.24倍。
当前虚拟化/嵌套地址转换因多级树形页表需顺序访问而缓慢,一次嵌套转换可能最多需要24次串行内存访问。本文提出首个支持并行嵌套地址转换的页表设计。该设计对访客和宿主机均采用哈希页表(HPT),但直接扩展原生 HPT 到嵌套环境收益有限;作者针对嵌套环境的新挑战进行设计,消除24次串行步骤中的21步,仅保留3步,同时限制并行内存访问数量以避免过度消耗缓存带宽。评估表明,相比传统嵌套基数树页表,该设计在4KB页面下平均加速应用1.19倍,使用大页时加速1.24倍;论文还给出从现有嵌套基数页表迁移到该设计的路径。
A major reason why nested or virtualized address translations are slow is because current systems organize page tables in a multi-level tree that is accessed in a sequential manner. A nested translation may potentially require up to twenty-four sequential memory accesses. To address this problem, this paper presents the first page table design that supports parallel nested address translation. The design is based on using hashed page tables (HPTs) for both guest and host. However, directly extending a native HPT design to a nested environment leads to minor gains. Instead, our design solves a new set of challenges that appear in nested environments. Our scheme eliminates all but three of the potentially twenty-four sequential steps of a nested translation—while judiciously limiting the number of parallel memory accesses issued to avoid over-consuming cache bandwidth. As a result, compared to conventional nested radix tables, our design speeds-up the execution of a set of applications by an average of 1.19x (for 4KB pages) and 1.24x (when huge pages are used). In addition, we also show a migration path from current nested radix page tables to our design.
@inproceedings{Stojkovic0KXT22,
title = {Parallel virtualized memory translation with nested elastic cuckoo page tables},
author = {Jovan Stojkovic and Dimitrios Skarlatos and Apostolos Kokolis and Tianyin Xu and Josep Torrellas},
booktitle = {ASPLOS},
year = {2022},
doi = {10.1145/3503222.3507720}
}