Virtual memory is a cornerstone of modern computing systems.Introduced as one
of the earliest instances of hardware-software co-design, VM facilitates
programmer-transparent memory man agement, data sharing, process isolation and
memory protection. Evaluating the efficiency of various virtual memory (VM)
designs is crucial (i) given their significant impact on the system, including
the CPU caches, the main memory, and the storage device and (ii) given that
different system architectures might benefit from various VM techniques. Such
an evaluation is not straightforward, as it heavily hinges on modeling the
interplay between different VM techniques and the interactions of VM with the
system architecture. Modern simulators, however, struggle to keep up with the
rapid VM research developments, lacking the capability to model a wide range of
contemporary VM techniques and their interactions. To this end, we present
Virtuoso, an open-source, comprehensive and modular simulation framework that
models various VM designs to establish a common ground for virtual memory
research. We demonstrate the versatility and the potential of Virtuoso with
four new case studies. Virtuoso is freely open-source and can be found at
https://github.com/CMU-SAFARI/Virtuoso