Comprehensive Framework for Virtual Memory Research - Virtuoso
Virtuoso is an open-source, modular simulation framework designed for virtual memory research. The framework aims to address performance overheads caused by virtual memory by proposing solutions like improving the TLB subsystem, employing large pages, leveraging contiguity, rethinking page tables, reducing page fault latency, and employing better address mappings. Effective evaluation of virtual memory techniques is crucial and requires flexibility in modeling various schemes and considering interactions between VM components. The framework also focuses on evaluating different VM schemes based on comparison points such as TLB prefetching vs. virtual caching and transparent huge pages. Specific examples highlight the impact of VM techniques on the system, including memory allocator influence on TLB performance and main memory interference due to new page table implementations.
- Virtual Memory
- Research Framework
- Performance Optimization
- Virtual Memory Solutions
- Evaluation Techniques
Download Presentation
Please find below an Image/Link to download the presentation.
The content on the website is provided AS IS for your information and personal use only. It may not be sold, licensed, or shared on other websites without obtaining consent from the author. Download presentation by click this link. If you encounter any issues during the download, it is possible that the publisher has removed the file from their server.
E N D
Presentation Transcript
Virtuoso An Open-Source, Comprehensive and Modular Simulation Framework for Virtual Memory Research https://github.com/CMU-SAFARI/Virtuoso Konstantinos Kanellopoulos Konstantinos Sgouras Onur Mutlu
Improving Virtual Memory Virtual memory causes high performance overheads Various academic and industrial solutions were proposed to reduce these overheads 2
Virtual Memory (VM) Solutions Improving the TLB Subsystem Employing Large Pages Leveraging Contiguity Rethinking Page Tables Reducing Page Fault Latency Employing Better Address Mappings 3
Evaluating VM Solutions Effectively evaluating VM techniques is crucial for progress in the domain 4
Evaluation Requirements Flexibility to model many VM schemes Interactions between VM components Impact of VM techniques on system 5
Evaluation Requirements Flexibility to model many VM schemes 6
Evaluating Various VM Schemes Set of comparison points New idea on VM TLB Prefetching vs. Virtual Caching Transparent Huge Pages 7
Evaluation Requirements Interactions between VM components 8
Example: TLB and Memory Allocator Memory Allocator TLB TLB performance heavily depends on the memory allocator (e.g., # of 2MB pages) 9
Evaluation Requirements Impact of VM techniques on system 10
Example: Main Memory Interference New Page Table Low Latency High Interference 11
Lack of Comprehensive Simulators Ramulator gem5 ZSim Sniper ChampSim Modern simulators lack the capability to model a wide range of state-of-the-art VM techniques 12
Our Approach: Virtuoso Virtuoso TLBs Page Table Protection Metadata Memory Allocator Memory Subsystem Out-of-Order Core Interconnects Example: Sniper Multicore Simulator1 [1] Carlson et al. An Evaluation of High-Level Mechanistic Core Models TACO 2014 13
Virtuoso: Key Benefits Comprehensive Modular Open-Source https://github.com/CMU-SAFARI/Virtuoso 14
Virtuoso: Key Benefits Comprehensive 15
Virtuoso: Tool Set 6 TLB Schemes 4 Page Table Designs MMU Nesting for Virtualized Environments Intermediate Address Space Schemes 2 Metadata Schemes for Protection 2 Contiguity- aware Schemes https://github.com/CMU-SAFARI/Virtuoso 16
VirtuOS: Mini-OS for Memory Management What about the OS? Challenge: We need to both simulate and emulate it 17
VirtuOS: Mini-OS for Memory Management Example Routine: Page Fault Handler Functional Events Allocate Page Microarchitectural Events addi load Promote Page Virtuoso Emulate Simulate 18
Virtuoso: Key Benefits Modular 19
Virtuoso: Modularity Virtuoso Virtuoso Virtuoso Sniper ZSim gem5 20
Virtuoso: Key Benefits Open-Source https://github.com/CMU-SAFARI/Virtuoso 21
Virtuoso is Open Source https://github.com/CMU-SAFARI/Virtuoso 22
Virtuoso Example Use Cases Comparing MMU Designs Effect of THP on PTW Latency 23
Virtuoso Example Use Cases Comparing MMU Designs Effect of THP on PTW Latency 24
Comparing MMU Designs 1.2 Speedup over Radix 1.1 1.0 0.9 Effective comparison of different MMU designs 25
Virtuoso Example Use Cases Comparing MMU Designs Effect of THP on PTW Latency 26
Interplay between PTW and THP 1.2 PTW Performance 1.0 0.8 0.6 0.4 0.2 0.0 0 1 2 3 4 5 6 7 8 9 10 Low Fragmentation -> High Fragmentation Effective evaluation of THP & PTW interactions 27
Conclusion Virtuoso TLBs Page Table Contiguity Techniques Protection Metadata VirtuOS Virtuoso is a good start for establishing a common ground for VM research https://github.com/CMU-SAFARI/Virtuoso
Virtuoso An Open-Source, Comprehensive and Modular Simulation Framework for Virtual Memory Research https://github.com/CMU-SAFARI/Virtuoso Konstantinos Kanellopoulos Konstantinos Sgouras Onur Mutlu