Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Best of 2016 Recommended by Editor Recommended by Reviewer Recommended by Reader
Search
Architectural and operating system support for virtual memory
Bhattacharjee A., Lustig D., Morgan & Claypool Publishers, San Rafael, CA, 2017. 176 pp. Type: Book (978-1-627056-02-1)
Date Reviewed: Feb 9 2018

Are you a memory management unit (MMU) hardware designer, an operating system kernel programmer, or a student/researcher of modern computer architectures or operating systems? Abhishek Bhattacharjee (Rutgers University) and Daniel Lustig (NVIDIA) have created a focused monograph on virtual memory design just for you. They discuss the state-of-the-art (2017) and emerging research trends, covering a broad span of topics under the narrow scope of virtual memory architecture. This work is for readers who want to dive in at the deepest end of the virtual memory (VM) subsystem in the computer architecture.

VM was invented soon after computing, during the late 1950s and early 1960s. VM has been an integral part of modern computer architecture since then and remains an active area of research and development. The VM module of a computer system is a carefully designed balance between hardware and software realization of the underlying design principles. Address translation is the crux of accessing data for processing in a virtual memory system.

Contemporary systems introduce heterogeneity in data processing components and data access, due to advances in data processing elements, such as multicore central processing units (CPUs), graphical processing units (GPUs), field-programmable gate arrays (FPGAs), and digital signal processors (DSPs). Advances in memory hardware technologies such as byte-addressable, nonvolatile memory and nonuniform memory access (NUMA) shake the basic assumptions and model of traditional VM design. Virtualized operating system environments and interaction between file systems and VM are calling for a deep review of VM architecture. The overhead due to address translation is of critical concern for the performance of user space programs. Address translation overhead as a fraction of the runtime performance of a program segment has been steadily increasing. How can hardware-software co-design approaches drastically reduce address translation overheads?

The initial three chapters are devoted to consolidating the basic, traditional knowledge about VM design. The subsequent three chapters are forward-looking to contemporary designs, trends, and research ideas in the VM domain. The heterogeneity of processors and virtualization has introduced specific challenges for contemporary VM designs. The dedicated chapter on accelerators and shared virtual memory discusses contemporary designs involving heterogeneous architectures. These discussions lead to hardware-software co-design approaches and their potential for drastically reducing address translation overheads. The hardware aspects of the VM subsystem are quite extensively covered with some level of discussion about operating system design, such as support for transparent super pages and efficient translation lookaside buffer (TLB) coherence.

VM design continues to be a challenging area of computer architecture and operating systems design due to rapid advances in the field. The critical position of this subsystem combined with the verification/validation challenges make designers terrified to make changes in this subsystem. This monograph is highly relevant to those smaller sections of computer systems for architects and designers. It covers several useful examples provided in the context of contemporary processors such as Intel x86-64, ARMv8, NVIDIA, AMD, Qualcomm Snapdragon 800 series, and so on.

It was a delight to read this book. The presentation style is a combination of advanced tutorial and survey. It presents 118 bibliographic entries. Researchers and graduate students in the VM domain will find this a treasure. Because the subject matter is presented concisely with depth, even newcomers to the domain may find the introductory chapters very helpful to gain clarity about contemporary practices. However, it is not meant to be an introductory book on computer architecture and operating systems.

Reviewer:  Sundara Nagarajan Review #: CR145847 (1805-0201)
Bookmark and Share
  Editor Recommended
Featured Reviewer
 
 
Virtual Memory (D.4.2 ... )
 
 
Virtual Memory (B.3.2 ... )
 
Would you recommend this review?
yes
no
Other reviews under "Virtual Memory": Date
Virtual memory management
Carr R., University of Michigan Press, Ann Arbor, MI, 1984. Type: Book (9789780835715331)
Dec 1 1986
Determining an optimal secondary storage service rate for the PASM control
Tuomenoksa D., Siegel H. IEEE Transactions on Computers 35(1): 43-53, 1986. Type: Article
Sep 1 1986
C memory management techniques
Dorfman L., Neuberger M., Windcrest/McGraw-Hill, Blue Ridge Summit, PA, 1993. Type: Book (9780830640584)
May 1 1994
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy