Architectural and Operating System Support for Virtual Memory

Architectural and Operating System Support for Virtual Memory

Abhishek Bhattacharjee, Daniel Lustig
ISBN: 9781627056021 | PDF ISBN: 9781627059336
Copyright © 2017 | 175 Pages | Publication Date: September, 2017

BEFORE YOU ORDER: You may have Academic or Corporate access to this title. Click here to find out: 10.2200/S00795ED1V01Y201708CAC042

Ordering Options: Paperback $69.95   E-book $55.96   Paperback & E-book Combo $87.44


Why pay full price? Members receive 15% off all orders.
Learn More Here

Read Our Digital Content License Agreement (pop-up)

Purchasing Options:



This book provides computer engineers, academic researchers, new graduate students, and seasoned practitioners an end-to-end overview of virtual memory. We begin with a recap of foundational concepts and discuss not only state-of-the-art virtual memory hardware and software support available today, but also emerging research trends in this space. The span of topics covers processor microarchitecture, memory systems, operating system design, and memory allocation. We show how efficient virtual memory implementations hinge on careful hardware and software cooperation, and we discuss new research directions aimed at addressing emerging problems in this space.

Virtual memory is a classic computer science abstraction and one of the pillars of the computing revolution. It has long enabled hardware flexibility, software portability, and overall better security, to name just a few of its powerful benefits. Nearly all user-level programs today take for granted that they will have been freed from the burden of physical memory management by the hardware, the operating system, device drivers, and system libraries.

However, despite its ubiquity in systems ranging from warehouse-scale datacenters to embedded Internet of Things (IoT) devices, the overheads of virtual memory are becoming a critical performance bottleneck today. Virtual memory architectures designed for individual CPUs or even individual cores are in many cases struggling to scale up and scale out to today's systems which now increasingly include exotic hardware accelerators (such as GPUs, FPGAs, or DSPs) and emerging memory technologies (such as non-volatile memory), and which run increasingly intensive workloads (such as virtualized and/or "big data" applications). As such, many of the fundamental abstractions and implementation approaches for virtual memory are being augmented, extended, or entirely rebuilt in order to ensure that virtual memory remains viable and performant in the years to come.

Table of Contents

Preface
Acknowledgments
Introduction
The Virtual Memory Abstraction / Implementing Virtual Memory: An Overview
Modern VM Hardware Stack
Virtual Memory, Coherence, and Consistency
Heterogeneity and Virtualization
Advanced VM Hardware
Advanced VM Hardware-software Co-design
Conclusion
Bibliography
Authors' Biographies

About the Author(s)

Abhishek Bhattacharjee, Rutgers University
Abhishek Bhattacharjee is an Associate Professor of Computer Science at Rutgers University. His research interests are in computer systems, particularly at the interface of hardware and software. More recently, he has also been working on designing chips for brain-machine implants and systems for large-scale brain modeling. Abhishek received his Ph.D. from Princeton University in 2010.

Daniel Lustig, NVIDIA
Daniel Lustig is a Senior Research Scientist at NVIDIA. Dan's work generally focuses on memory system architectures, and his particular research interests lie in memory consistency models, cache coherence protocols, virtual memory, and formal verification of all of the above. Dan received his Ph.D. in Electrical Engineering from Princeton in 2015.

Reviews

Browse by Subject
Case Studies in Engineering
ACM Books
IOP Concise Physics
SEM Books
0 items
LATEST NEWS

Newsletter
Note: Registered customers go to: Your Account to subscribe.

E-Mail Address:

Your Name: