Our research focuses on bridging the growing gap between hardware and operating systems. We seek to improve the reliability and performance of hardware access while simplifying the programmer’s task. Our work covers the major hardware in computer systems: devices, memory, storage, and the CPU.
Efficient Virtual MemoryVirtual memory, while a great idea, comes at an increasing cost. Translation lookaside buffers (TLBs) consume a disproportionate amount of power (up to 13% in some modern processors) and can cause overhead exceeding 70% for some applications. We recognized that the most efficient form of translation is a segment: a set of three values (base, limit, offset) can translate an arbitrarily large range of virtual addresses to physical addresses. We first pursued this idea with Direct Segments which provides a single segment, abstracted in the operating system with a Primary Region. More recently, we have extended the direct segment design to allow an arbitrary number of segments with Range Translations Virtual memory has even higher cost in virtualized environments, common in cloud computing. We developed an extension of direct segments for use in virtual machines, where we created three designs that trade off performance, features, and compatibility with existing code. Recognizing that this approach has a cost in terms of creating contiguous memory, we also designed Agile Paging, which switches between two different memory virtualize approaches (nested and shadow paging) within a single address space to achieve performance with 2.5% of native execution.
Device drivers are a major source of complexity, unreliability, and cost for modern operating systems. As evidence, drivers account for the majority of system crashes: Microsoft reports that 89% of Windows XP crashes are caused by device drivers, and Linux driver code had up to seven times the bug density of other kernel code. The objective of my research is to improve device drivers by (1) reducing the complexity and cost of implementing device drivers, (2) improving the fault tolerance of device drivers, and (3) improving the performance of device drivers on modern hardware and software architectures.
Transactional memory promises to simplify multhreaded programming by removing the need to associate a lock with each piece of shared data. Instead, programmers specify transactions, which forces a set of statements to execute atomically.
One of the key problems faced by transactional memory systems is virtualization and the operating system: how can you virtualize hardware support for transactional memory, so that transactions can co-exist with paging and context switching? Also, how can you provide unbounded length transactions in the presence of limited-size hardware structures? Finally, how do system calls and I/O operate in the presence of transctions?
- Yanfang Le, Hyunseok Chang, Sarit Mukherjee, Limin Wang, Aditya Akella, Michael Swift and T.V. Lakshman. UNO: Unifying Host and Smart NIC Offload for Flexible Packet Processing. To appear in Proceedings of the ACM Symposium on Cloud Computing 2017 (SoCC '17), September 2017
- Brent Stephens, Arjun Singhvi, Aditya Akella, and Michael Swift. Titan: Fair Packet Scheduling for Commodity Multiqueue NICs In Proceedings of the 2017 USENIX Annual Technical Conference (USENIX ATC'17), July 2017
- Yan Zhai, Qiang Cao, Jeffrey Chase, Michael Swift. TapCon: Practical Third-Party Attestation for the Cloud . In Proceedings of 9th USENIX Workshop on Hot Topics in Cloud Computing (HotCloud'17). July, 2017.
- Jayneel Gandhi, Mark D. Hill and Michael M. Swift. Agile Paging for Efficient Memory Virtualization. In IEEE Micro Special Issue: Micro's Top Picks from Architecture Conferences, May/June 2017.
- Michael M. Swift. Towards O(1) Memory. In Proceedings of the Workshop on Hot Topics in Operating Systems (HotOS), May 2017.
- Sanketh Nalli, Swapnil Haria, Mark D. Hill, Michael M. Swift, Haris Volos, Kimberly Keeton. An Analysis of Persistent Memory Use with WHISPER. In 22nd ACM International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS 2017).
- Swapnil Haria, Sanketh Nalli, Mark D. Hill, Michael M. Swift, Haris Volos, Kimberly Keeton. Hands-Off Persistence System (HOPS) . In 8th Annual Non-Volatile Memories Workshop (NVMW 2017), February 2017.
- Sanketh Nalli, Swapnil Haria, Mark D. Hill, Michael M. Swift, Haris Volos, Kimberly Keeton. How Applications Use Persistent Memory. In 8th Annual Non-Volatile Memories Workshop (NVMW 2017), February 2017.
- Michael Swift
- Yan Zhai
- Akhil Guliana
- Mark Mansi
- Nikhita Kunati
- Swapnil Haria
- Pratyush Mahapatra
- Adwait Tumbde , now at Yahoo
- Arini Balakrishnan, now at Sun
- Neelam Goyal , now at Oracle
- Andres Tack , now at Skype
- Haris Volos , now at HP Labs
- Matthew Renzelmann , now t Microsoft
- Mohit Saxena , now at IBM
- Asim Kadav, now at NEC labs
- Sankaralingam Panneerselvam, now at Facebook