Skip to main content


Generalised radix page table: A page table for modern architectures


Chris Szmajda and Gernot Heiser

    School of Computer Science and Engineering
    Sydney 2052, Australia


This paper presents a new page table structure, the variable radix page table, which overcomes many of the disadvantages of other page table structures. Unlike a hashed page table, the variable radix page table naturally accommodates shared segments and mixed page sizes. But unlike a multi-level page table, the radix page table is space-efficient and requires few memory references to look up, even in large and sparse address spaces. Our measurements show that the variable radix page table outperforms other page table structures, and is even competitive with a memory-based TLB cache.

Recent research has shown that thrashing of the TLB is an increasing bottleneck in modern processors: measurements of the TLB's contribution to execution time often exceed 4%. Such results sometimes even understate the full impact of TLB thrashing due to the presence of indirect overheads such as cache pollution and the effect of exceptions on the processor pipeline. By reducing the cost of TLB misses, the variable radix page table can achieve a significant overall speedup. The variable radix page table's mixed page size support also facilitates the reduction of TLB miss frequency, addressing the architectural imbalance that causes TLB thrashing. Our conclusions are also significant in the debate on the different hardware organizations in use for virtual memory.

BibTeX Entry

    publisher        = {Springer},
    author           = {Christan Szmajda and Gernot Heiser},
    title            = {Generalised Radix Page Table: A Page Table for Modern Architectures},
    month            = sep,
    year             = {2003},
    booktitle        = {Proceedings of the 8th Asia-Pacific Computer Systems Architecture Conference},
    pages            = {290-304},
    address          = {Aizu-Wakamatsu City, Japan}


Served by Apache on Linux on seL4.
Served by Apache on Linux on seL4.