Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Jeremy Condit is active.

Publication


Featured researches published by Jeremy Condit.


symposium on operating systems principles | 2009

Better I/O through byte-addressable, persistent memory

Jeremy Condit; Edmund B. Nightingale; Christopher Frost; Engin Ipek; Benjamin C. Lee; Doug Burger; Derrick Coetzee

Modern computer systems have been built around the assumption that persistent storage is accessed via a slow, block-based interface. However, new byte-addressable, persistent memory technologies such as phase change memory (PCM) offer fast, fine-grained access to persistent storage. In this paper, we present a file system and a hardware architecture that are designed around the properties of persistent, byteaddressable memory. Our file system, BPFS, uses a new technique called short-circuit shadow paging to provide atomic, fine-grained updates to persistent storage. As a result, BPFS provides strong reliability guarantees and offers better performance than traditional file systems, even when both are run on top of byte-addressable, persistent memory. Our hardware architecture enforces atomicity and ordering guarantees required by BPFS while still providing the performance benefits of the L1 and L2 caches. Since these memory technologies are not yet widely available, we evaluate BPFS on DRAM against NTFS on both a RAM disk and a traditional disk. Then, we use microarchitectural simulations to estimate the performance of BPFS on PCM. Despite providing strong safety and consistency guarantees, BPFS on DRAM is typically twice as fast as NTFS on a RAM disk and 4-10 times faster than NTFS on disk. We also show that BPFS on PCM should be significantly faster than a traditional disk-based file system.


architectural support for programming languages and operating systems | 2010

Dynamically replicated memory: building reliable systems from nanoscale resistive memories

Engin Ipek; Jeremy Condit; Edmund B. Nightingale; Doug Burger; Thomas Moscibroda

DRAM is facing severe scalability challenges in sub-45nm tech- nology nodes due to precise charge placement and sensing hur- dles in deep-submicron geometries. Resistive memories, such as phase-change memory (PCM), already scale well beyond DRAM and are a promising DRAM replacement. Unfortunately, PCM is write-limited, and current approaches to managing writes must de- commission pages of PCM when the first bit fails. This paper presents dynamically replicated memory (DRM), the first hardware and operating system interface designed for PCM that allows continued operation through graceful degradation when hard faults occur. DRM reuses memory pages that con- tain hard faults by dynamically forming pairs of complementary pages that act as a single page of storage. No changes are required to the processor cores, the cache hierarchy, or the operating sys- tems page tables. By changing the memory controller, the TLBs, and the operating system to be DRM-aware, we can improve the lifetime of PCM by up to 40x over conventional error-detection techniques.


symposium on principles of programming languages | 2009

Unifying type checking and property checking for low-level code

Jeremy Condit; Brian Hackett; Shuvendu K. Lahiri; Shaz Qadeer

We present a unified approach to type checking and property checking for low-level code. Type checking for low-level code is challenging because type safety often depends on complex, program-specific invariants that are difficult for traditional type checkers to express. Conversely, property checking for low-level code is challenging because it is difficult to write concise specifications that distinguish between locations in an untyped programs heap. We address both problems simultaneously by implementing a type checker for low-level code as part of our property checker. We present a low-level formalization of a C programs heap and its types that can be checked with an SMT solver, and we provide a decision procedure for checking type safety. Our type system is flexible enough to support a combination of nominal and structural subtyping for C, on a per-structure basis. We discuss several case studies that demonstrate the ability of this tool to express and check complex type invariants in low-level C code, including several small Windows device drivers.


programming language design and implementation | 2008

Type-preserving compilation for large-scale optimizing object-oriented compilers

Juan Chen; Chris Hawblitzel; Frances Perry; Michael Emmi; Jeremy Condit; Derrick Coetzee; Polyvios Pratikaki

Type-preserving compilers translate well-typed source code, such as Java or C#, into verifiable target code, such as typed assembly language or proof-carrying code. This paper presents the implementation of type-preserving compilation in a complex, large-scale optimizing compiler. Compared to prior work, this implementation supports extensive optimizations, and it verifies a large portion of the interface between the compiler and the runtime system. This paper demonstrates the practicality of type-preserving compilation in complex optimizing compilers: the generated typed assembly language is only 2.3% slower than the base compilers generated untyped assembly language, and the type-preserving compiler is 82.8% slower than the base compiler.


Archive | 2009

Hardware and operating system support for persistent memory on a memory bus

Jeremy Condit; Engin Ipek; Edmund B. Nightingale; Benjamin C. Lee; Christopher Frost; Doug Burger


Archive | 2010

Managing memory faults

Doug Burger; James R. Larus; Karin Strauss; Jeremy Condit


Archive | 2009

Dynamically Replicated Memory

Engin Ipek; Jeremy Condit; Edmund B. Nightingale; Douglas C. Burger; Thomas Moscibroda


Archive | 2009

Efficiency of hardware memory access using dynamically replicated memory

Engin Ipek; Thomas Moscibroda; Douglas C. Burger; Edmund B. Nightingale; Jeremy Condit


Archive | 2008

Unifying Type Checking and Property Checking for Low Level Programs

Jeremy Condit; Shaz Qadeer; Shuvendu K. Lahiri


Archive | 2010

Dynamically Replicated Memory: Building resilient systems from unreliable nanoscale memories

Engin Ipek; Jeremy Condit; Edmund B. Nightingale; Doug Burger; Thomas Moscibroda

Collaboration


Dive into the Jeremy Condit's collaboration.

Top Co-Authors

Avatar

Engin Ipek

University of Rochester

View shared research outputs
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Researchain Logo
Decentralizing Knowledge