Virtual-to-physical memory translation is becoming an increasingly dominant cost in workload execution; as data sizes scale, up to four memory accesses are required per translation, and 24 in virtualised systems. However, the radix trees in use today to hold these translations have many favorable properties, including cacheability, ability to fit in conventional 4kiB page frames, and a sparse representation, and so they are unlikely to be replaced in the near future.
In this paper we argue that these structures are actually too sparse for modern workloads, so many of the overheads are unnecessary. Instead, where appropriate, we expand groups of 4kiB layers, each able to translate 9 bits of address space, into a single 2MiB layer, able to translate 18 bits in a single memory access. These fit in the standard huge-page allocations used by most conventional operating systems and architectures. With minor extensions to the page-table-walker structures to support these, and aid in their cacheability, we can reduce memory accesses per walk by 27%, or 56% for virtualised systems, without significant memory overhead.
Displayed time zone: Eastern Time (US & Canada)change
13:30 - 16:15
Session 2: Paging/Structuring & Session 3: Allocating/Copying ISMM 2021 at ISMM Chair(s): Doug Lea State University of New York (SUNY) Oswego, Benjamin Zorn Microsoft Research