The unprecedented growth in data demand from emerging applications has turned virtual memory (VM) into a major performance bottleneck. Researchers explore new hardware/OS co-designs to optimize VM across diverse applications and systems. To evaluate such designs, researchers rely on various simulation methodologies to model VM components.Unfortunately, current simulation tools (i) either lack the desired accuracy in modeling VM's software components or (ii) are too slow and complex to prototype and evaluate schemes that span across the hardware/software boundary. We introduce Virtuoso, a new simulation framework that enables quick and accurate prototyping and evaluation of the software and hardware components of the VM subsystem. The key idea of Virtuoso is to employ a lightweight userspace OS kernel, called MimicOS, that (i) accelerates simulation time by imitating only the desired kernel functionalities, (ii) facilitates the development of new OS routines that imitate real ones, using an accessible high-level programming interface, (iii) enables accurate and flexible evaluation of the application- and system-level implications of VM after integrating Virtuoso to a desired architectural simulator. We integrate Virtuoso into five diverse architectural simulators, each specializing in different aspects of system design, and heavily enrich it with multiple state-of-the-art VM schemes. Our validation shows that Virtuoso ported on top of Sniper, a state-of-the-art microarchitectural simulator, models the memory management unit of a real high-end server-grade page fault latency of a real Linux kernel with high accuracy . Consequently, Virtuoso models the IPC performance of a real high-end server-grade CPU with 21% higher accuracy than the baseline version of Sniper. The source code of Virtuoso is freely available at https://github.com/CMU-SAFARI/Virtuoso.
翻译:新兴应用对数据需求的空前增长使虚拟内存(VM)成为主要性能瓶颈。研究人员探索新的硬件/操作系统协同设计方案,以优化不同应用和系统中的VM性能。为评估此类设计,研究者依赖多种模拟方法来建模VM组件。然而,现有模拟工具存在以下问题:(i)在建模VM软件组件时缺乏所需精度,或(ii)速度过慢且过于复杂,难以对跨越硬件/软件边界的方案进行原型设计与评估。本文提出Virtuoso——一种新型模拟框架,能够快速准确地对VM子系统的软硬件组件进行原型设计与评估。Virtuoso的核心思想是采用名为MimicOS的轻量级用户空间操作系统内核,该内核具有以下特性:(i)通过仅模拟所需内核功能来加速模拟过程;(ii)通过易用的高级编程接口,支持开发模仿真实内核行为的新操作系统例程;(iii)在将Virtuoso集成至目标架构模拟器后,能够准确灵活地评估VM在应用层和系统层的影响。我们将Virtuoso集成至五个专注于不同系统设计方向的架构模拟器,并通过集成多种前沿VM方案对其进行功能增强。验证结果表明:基于先进微架构模拟器Sniper移植的Virtuoso能够高精度模拟真实高端服务器级CPU的页错误延迟,其建模的Linux内核内存管理单元精度显著提升。因此,Virtuoso对真实高端服务器级CPU的IPC性能建模精度较Sniper基准版本提高21%。Virtuoso源代码已在https://github.com/CMU-SAFARI/Virtuoso开源发布。