Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

John K. Ousterhout

dblp:o/JohnKOusterhout · DBLP profile ↗
← Back
46ranked-venue papers
11as first author
3since 2021 · last 2021
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Systems, architecture and hardware · 28 · 9 first-author · 1 since 2021Software engineering, systems software and programming languages · 14 · 2 first-authorComputer networks · 4 · 2 since 2021Databases, data management, data science and information retrieval · 2

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Computer architecture, parallel and distributed computing, and storage systems
35 papers
Distributed systems · 36% Storage systems · 30% High-performance computing · 15%
Computer networks
2 papers
Transport protocols and congestion control · 92% Network measurement and analytics · 8%
Software engineering, system software, and programming languages
8 papers
Operating systems · 46% Software maintenance and evolution · 31% Concurrent programming · 21%

Topics — the 30 heaviest of 71, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Distributed systems
consensus
1.132021
EPaxos Revisited · NSDI 2021
Exploiting Commutativity For Practical Fast Replication · NSDI 2019
In Search of an Understandable Consensus Algorithm · USENIX ATC 2014
Transport protocols and congestion control
transport protocol implementation
0.512021
A Linux Kernel Implementation of the Homa Transport Protocol · USENIX ATC 2021
High-performance computing
data-intensive computing
0.512021
MilliSort and MilliQuery: Large-Scale Data-Intensive Computing in Milliseconds · NSDI 2021
High-performance computing › data-intensive computing
large-scale data processing
0.512021
MilliSort and MilliQuery: Large-Scale Data-Intensive Computing in Milliseconds · NSDI 2021
Storage systems
key-value storage
0.522016
SLIK: Scalable Low-Latency Indexes for a Key-Value Store · USENIX ATC 2016
The RAMCloud Storage System · ACM Trans. Comput. Syst. 2015
Storage systems
storage reliability
0.452015
The RAMCloud Storage System · ACM Trans. Comput. Syst. 2015
Copysets: Reducing the Frequency of Data Loss in Cloud Storage · USENIX ATC 2013
The Zebra Striped Network File System · ACM Trans. Comput. Syst. 1995
Distributed systems
replication
0.412019
Exploiting Commutativity For Practical Fast Replication · NSDI 2019
Distributed systems
fault tolerance
0.322015
Experience with Rules-Based Programming for Distributed, Concurrent, Fault-Tolerant Code · USENIX ATC 2015
Fast crash recovery in RAMCloud · SOSP 2011
Transport protocols and congestion control › flow control
receiver-based flow control
0.312018
Homa: a receiver-driven low-latency transport protocol using network priorities · SIGCOMM 2018
Transport protocols and congestion control
transport protocols
0.312018
Homa: a receiver-driven low-latency transport protocol using network priorities · SIGCOMM 2018
Software maintenance and evolution
logging
0.312018
NanoLog: A Nanosecond Scale Logging System · USENIX ATC 2018
Operating systems › resource management › process management
thread management
0.312018
Arachne: Core-Aware Thread Management · OSDI 2018
Storage systems › file systems › write-optimized file system
log-structured file system
0.352014
Log-structured memory for DRAM-based storage · FAST 2014
Fast crash recovery in RAMCloud · SOSP 2011
The Zebra Striped Network File System · SOSP 1993
Storage systems › indexing
index structure
0.212016
SLIK: Scalable Low-Latency Indexes for a Key-Value Store · USENIX ATC 2016
Storage systems
crash recovery
0.232015
The RAMCloud Storage System · ACM Trans. Comput. Syst. 2015
The Design and Implementation of a Log-Structured File System · ACM Trans. Comput. Syst. 1992
The Design and Implementation of a Log-Structured File System · SOSP 1991
Distributed systems › distributed database
distributed transactions
0.212015
Implementing linearizability at large scale and low latency · SOSP 2015
Storage systems › key-value storage
in-memory key-value store
0.212015
The RAMCloud Storage System · ACM Trans. Comput. Syst. 2015
Distributed systems › consistency models
linearizability
0.212015
Implementing linearizability at large scale and low latency · SOSP 2015
Distributed systems
transaction processing
0.212015
Implementing linearizability at large scale and low latency · SOSP 2015
Memory systems › DRAM
DRAM-based storage
0.222014
Fast crash recovery in RAMCloud · SOSP 2011
Log-structured memory for DRAM-based storage · FAST 2014
Operating systems › kernel
linux kernel
0.112021
A Linux Kernel Implementation of the Homa Transport Protocol · USENIX ATC 2021
Network measurement and analytics
latency measurement
0.112018
Homa: a receiver-driven low-latency transport protocol using network priorities · SIGCOMM 2018
Cloud and datacenter computing
cluster resource management and scheduling
0.112018
Arachne: Core-Aware Thread Management · OSDI 2018
Storage systems
distributed storage
0.132015
Implementing linearizability at large scale and low latency · SOSP 2015
The Zebra Striped Network File System · ACM Trans. Comput. Syst. 1995
The Zebra Striped Network File System · SOSP 1993
Cloud and datacenter computing
datacenter storage
0.112015
The RAMCloud Storage System · ACM Trans. Comput. Syst. 2015
Memory systems
DRAM
0.112015
The RAMCloud Storage System · ACM Trans. Comput. Syst. 2015
Distributed computing theory
consensus
0.112014
In Search of an Understandable Consensus Algorithm · USENIX ATC 2014
Cloud and datacenter computing
cloud storage
0.012013
Copysets: Reducing the Frequency of Data Loss in Cloud Storage · USENIX ATC 2013
Storage systems
file systems
0.061993
The Zebra Striped Network File System · SOSP 1993
The Design and Implementation of a Log-Structured File System · ACM Trans. Comput. Syst. 1992
Non-Volatile Memory for Fast, Reliable File Systems · ASPLOS 1992
Storage systems › file systems › distributed file system
network file system
0.041995
The Zebra Striped Network File System · ACM Trans. Comput. Syst. 1995
The Zebra Striped Network File System · SOSP 1993
Caching in the Sprite Network File System · ACM Trans. Comput. Syst. 1988

Methods — techniques the papers use, named apart from their topics

logging · 0.7kernel instrumentation · 0.7simulation · 0.4priority queueing · 0.3polling-based communication · 0.2log-structured storage · 0.2kernel bypass · 0.2replication · 0.2randomized techniques · 0.1log-structured striping · 0.0RAID-style parity · 0.0benchmarking · 0.0
YearPublicationVenuePosition
2021 MilliSort and MilliQuery: Large-Scale Data-Intensive Computing in Milliseconds
Seo Jin Park, John K. Ousterhout
NSDI3
2021 EPaxos Revisited
Sarah Tollman, Seo Jin Park, John K. Ousterhout
NSDI3
2021 A Linux Kernel Implementation of the Homa Transport Protocol
John K. Ousterhout
USENIX ATC1
2019 Granular Computing
abstract
Granular computing is a new style of computing where applications are composed of large numbers (thousands to millions) of very short-lived (10-100μs) tasks. Today's systems and infrastructure were designed to support millisecond-scale operations and are inadequate to meet the demands of granular computing. In this position paper we discuss the challenges of supporting granular applications, such as handling extreme bursts of activity, and we present a few initial ideas about the infrastructure required to enable granular computing, such as new mechanisms for communication and persistence.
Collin Lee, John K. Ousterhout
HotOS2
2019 Exploiting Commutativity For Practical Fast Replication
Seo Jin Park, John K. Ousterhout
NSDI2
2018 Arachne: Core-Aware Thread Management
Henry Qin, Qian Li 0027, Jacqueline Speiser, Peter Kraft, John K. Ousterhout
OSDI5
2018 Homa: a receiver-driven low-latency transport protocol using network priorities
abstract
Homa is a new transport protocol for datacenter networks. It provides exceptionally low latency, especially for workloads with a high volume of very short messages, and it also supports large messages and high network utilization. Homa uses in-network priority queues to ensure low latency for short messages; priority allocation is managed dynamically by each receiver and integrated with a receiver-driven flow control mechanism. Homa also uses controlled overcommitment of receiver downlinks to ensure efficient bandwidth utilization at high load. Our implementation of Homa delivers 99th percentile round-trip times less than 15 μs for short messages on a 10 Gbps network running at 80% load. These latencies are almost 100x lower than the best published measurements of an implementation. In simulations, Homa's latency is roughly equal to pFabric and significantly better than pHost, PIAS, and NDP for almost all message sizes and workloads. Homa can also sustain higher network loads than pFabric, pHost, or PIAS.
Behnam Montazeri, Mohammad Alizadeh, John K. Ousterhout
SIGCOMM4
2018 NanoLog: A Nanosecond Scale Logging System
Seo Jin Park, John K. Ousterhout
USENIX ATC3
2016 SLIK: Scalable Low-Latency Indexes for a Key-Value Store
Ankita Kejriwal, Arjun Gopalan, John K. Ousterhout
USENIX ATC6
2015 Implementing linearizability at large scale and low latency
abstract
Linearizability is the strongest form of consistency for concurrent systems, but most large-scale storage systems settle for weaker forms of consistency. RIFL provides a general-purpose mechanism for converting at-least-once RPC semantics to exactly-once semantics, thereby making it easy to turn non-linearizable operations into linearizable ones. RIFL is designed for large-scale systems and is lightweight enough to be used in low-latency environments. RIFL handles data migration by associating linearizability metadata with objects in the underlying store and migrating metadata with the corresponding objects. It uses a lease mechanism to implement garbage collection for metadata. We have implemented RIFL in the RAMCloud storage system and used it to make basic operations such as writes and atomic increments linearizable; RIFL adds only 530 ns to the 13.5 μs base latency for durable writes. We also used RIFL to construct a new multi-object transaction mechanism in RAMCloud; RIFL's facilities significantly simplified the transaction implementation. The transaction mechanism can commit simple distributed transactions in about 20 μs and it outperforms the H-Store main-memory database system for the TPC-C benchmark.
Collin Lee, Seo Jin Park, Ankita Kejriwal, Satoshi Matsushita, John K. Ousterhout
SOSP5
2015 Experience with Rules-Based Programming for Distributed, Concurrent, Fault-Tolerant Code
Ryan Stutsman, Collin Lee, John K. Ousterhout
USENIX ATC3
2015 The RAMCloud Storage System
abstract
RAMCloud is a storage system that provides low-latency access to large-scale datasets. To achieve low latency, RAMCloud stores all data in DRAM at all times. To support large capacities (1PB or more), it aggregates the memories of thousands of servers into a single coherent key-value store. RAMCloud ensures the durability of DRAM-based data by keeping backup copies on secondary storage. It uses a uniform log-structured mechanism to manage both DRAM and secondary storage, which results in high performance and efficient memory usage. RAMCloud uses a polling-based approach to communication, bypassing the kernel to communicate directly with NICs; with this approach, client applications can read small objects from any RAMCloud storage server in less than 5μs, durable writes of small objects take about 13.5μs. RAMCloud does not keep multiple copies of data online; instead, it provides high availability by recovering from crashes very quickly (1 to 2 seconds). RAMCloud’s crash recovery mechanism harnesses the resources of the entire cluster working concurrently so that recovery performance scales with cluster size.
John K. Ousterhout, Arjun Gopalan, Ankita Kejriwal, Collin Lee, Behnam Montazeri, Diego Ongaro, Seo Jin Park, Henry Qin, Mendel Rosenblum, Stephen M. Rumble, Ryan Stutsman
ACM Trans. Comput. Syst.1
2014 Log-structured memory for DRAM-based storage
Stephen M. Rumble, Ankita Kejriwal, John K. Ousterhout
FAST3
2014 In Search of an Understandable Consensus Algorithm
Diego Ongaro, John K. Ousterhout
USENIX ATC2
2013 Toward Common Patterns for Distributed, Concurrent, Fault-Tolerant Code
Ryan Stutsman, John K. Ousterhout
HotOS2
2013 Copysets: Reducing the Frequency of Data Loss in Cloud Storage
Asaf Cidon, Stephen M. Rumble, Ryan Stutsman, Sachin Katti, John K. Ousterhout, Mendel Rosenblum
USENIX ATC5
2011 It's Time for Low Latency
Stephen M. Rumble, Diego Ongaro, Ryan Stutsman, Mendel Rosenblum, John K. Ousterhout
HotOS5
2011 Fast crash recovery in RAMCloud
abstract
RAMCloud is a DRAM-based storage system that provides inexpensive durability and availability by recovering quickly after crashes, rather than storing replicas in DRAM. RAMCloud scatters backup data across hundreds or thousands of disks, and it harnesses hundreds of servers in parallel to reconstruct lost data. The system uses a log-structured approach for all its data, in DRAM as well as on disk: this provides high performance both during normal operation and during recovery. RAMCloud employs randomized techniques to manage the system in a scalable and decentralized fashion. In a 60-node cluster, RAMCloud recovers 35 GB of data from a failed server in 1.6 seconds. Our measurements suggest that the approach will scale to recover larger memory sizes (64 GB or more) in less time with larger clusters.
Diego Ongaro, Stephen M. Rumble, Ryan Stutsman, John K. Ousterhout, Mendel Rosenblum
SOSP4
1998 The Safe-Tcl Security Model
Jacob Y. Levy, Laurent Demailly, John K. Ousterhout, Brent B. Welch
USENIX ATC3
1995 The Zebra Striped Network File System
abstract
Zebra is a network file system that increases throughput by striping the file data across multiple servers. Rather than striping each file separately, Zebra forms all the new data from each client into a single stream, which it then stripes using an approach similar to a log-structured file system. This provides high performance for writes of small files as well as for reads and writes of large files. Zebra also writes parity information in each stripe in the style of RAID disk arrays; this increases storage costs slightly, but allows the system to continue operation while a single storage server is unavailable. A prototype implementation of Zebra, built in the Sprite operating system, provides 4–5 times the throughput of the standard Sprite file system or NFS for large files and a 15–300% improvement for writing small files.
John H. Hartman, John K. Ousterhout
ACM Trans. Comput. Syst.2
1993 The Zebra Striped Network File System
abstract
Zebra is a network file system that increases throughput by striping file data across multiple servers. Rather than striping each file separately, Zebra forms all the new data from each client into a single stream, which it then stripes using an approach similar to a log-structured file system. This provides high performance for writes of small files as well as for reads and writes of large files. Zebra also writes parity information in each stripe in the style of RAID disk arrays; this increases storage costs slightly but allows the system to continue operation even while a single storage server is unavailable. A prototype implementation of Zebra, built in the Sprite operating system, provides 4--5 times the throughput of the standard Sprite file system or NFS for large files and a 20%-3x improvement for writing small files.
John H. Hartman, John K. Ousterhout
SOSP2
1992 Non-Volatile Memory for Fast, Reliable File Systems
abstract
Given the decreasing cost of non-volatile RAM (NVRAM), by the late 1990’s it will be feasible for most workstations to include a megabyte or more of NVRAM, enabling the design of higher-performance, more reliable systems. We present the trace-driven simulation and analysis of two uses of NVRAM to improve I/O performance in distributed file systems: non-volatile file caches on client workstations to reduce write traffic to file servers, and write buffers for write-optimized file systems to reduce server disk accesses. Our results show that a megabyte of NVRAM on diskless clients reduces the amount of file data written to the server by 40 to 50%. Increasing the amount of NVRAM shows rapidly diminishing returns, and the particular NVRAM block replacement policy makes little difference to write traffic. Closely integrating the NVRAM with the volatile cache provides the best total traffic reduction. At today’s prices, volatile memory provides a better performance improvement per dollar than NVRAM for client caching, but as volatile cache sizes increase and NVRAM becomes cheaper, NVRAM will become cost effective. On the server side, providing a one-half megabyte write-buffer per file system reduces disk accesses by about 20 % on most of the measured logstructured file systems (LFS), and by 90 % on one heavilyused file system that includes transaction-processing workloads. 1.
Mary Baker, Satoshi Asami, Etienne Deprit, John K. Ousterhout, Margo I. Seltzer
ASPLOS4
1992 The Design and Implementation of a Log-Structured File System
abstract
This paper presents a new technique for disk storage management called a log-structured file system . A log-structured file system writes all modifications to disk sequentially in a log-like structure, thereby speeding up both file writing and crash recovery. The log is the only structure on disk; it contains indexing information so that files can be read back from the log efficiently. In order to maintain large free areas on disk for fast writing, we divide the log into segments and use a segment cleaner to compress the live information from heavily fragmented segments. We present a series of simulations that demonstrate the efficiency of a simple cleaning policy based on cost and benefit. We have implemented a prototype log-structured file system called Sprite LFS; it outperforms current Unix file systems by an order of magnitude for small-file writes while matching or exceeding Unix performance for reads and large writes. Even when the overhead for cleaning is included, Sprite LFS can use 70% of the disk bandwidth for writing, whereas Unix file systems typically can use only 5–10%.
Mendel Rosenblum, John K. Ousterhout
ACM Trans. Comput. Syst.2
1991 Measurements of a Distributed File System
abstract
We analyzed the user-level file access patterns and caching behavior of the Sprite distributed file system. The first part of our analysis repeated a study done in 1985 of the: BSD UNIX file system. We found that file throughput has increased by a factor of 20 to an average of 8 Kbytes per second per active user over 10-minute intervals, and that the use of process migration for load sharing increased burst rates by another factor of six. Also, many more very large (multi-megabyte) files are in use today than in 1985. The second part of our analysis measured the behavior of Sprite's main-memory file caches. Client-level caches average about 7 Mbytes in size (about one-quarter to one-third of main memory) and filter out about 50% of the traffic between clients and servers. 35% of the remaining server traffic is caused by paging, even on workstations with large memories. We found that client cache consistency is needed to prevent stale data errors, but that it is not invoked often enough to degrade overall system performance.
Mary Baker, John H. Hartman, Michael D. Kupfer, Ken Shirriff, John K. Ousterhout
SOSP5
1991 The Design and Implementation of a Log-Structured File System
abstract
This paper presents a new technique for disk storage management called a log-structured file system. A log-structured file system writes all modifications to disk sequentially in a log-like structure, thereby speeding up both file writing and crash recovery. The log is the only structure on disk; it contains indexing information so that files can be read back from the log efficiently. In order to maintain large free areas on disk for fast writing, we divide the log into segments and use a segment cleaner to compress the live information from heavily fragmented segments. We present a series of simulations that demonstrate the efficiency of a simple cleaning policy based on cost and benefit. We have implemented a prototype log-structured file system called Sprite LFS; it outperforms current Unix file systems by an order of magnitude for small-file writes while matching or exceeding Unix performance for reads and large writes. Even when the overhead for cleaning is included, Sprite LFS can use 70% of the disk bandwidth for writing, whereas Unix file systems typically can use only 5--10%.
Mendel Rosenblum, John K. Ousterhout
SOSP2
1991 Transparent Process Migration: Design Alternatives and the Sprite Implementation
abstract
Abstract The Sprite operating system allows executing processes to be moved between hosts at any time. We use this process migration mechanism to offload work onto idle machines, and also to evict migrated processes when idle workstations are reclaimed by their owners. Sprite's migration mechanism provides a high degree of transparency both for migrated processes and for users. Idle machines are identified, and eviction is invoked, automatically by daemon processes. On Sprite it takes up to a few hundred milliseconds on SPARCstation 1 workstations to perform a remote exec, whereas evictions typically occur in a few seconds. The pmake program uses remote invocation to invoke tasks concurrently. Compilations commonly obtain speed‐up factors in the range of three to six; they are limited primarily by contention for centralized resources such as file servers. CPU‐bound tasks such as simulations can make more effective use of idle hosts, obtaining as much as eight‐fold speed‐up over a period of hours. Process migration has been in regular service for over two years.
Fred Douglis, John K. Ousterhout
Softw. Pract. Exp.2
1988 The Design of XPRS
Michael Stonebraker, Randy H. Katz, David A. Patterson 0001, John K. Ousterhout
VLDB4
1988 Caching in the Sprite Network File System
abstract
The Sprite network operating system uses large main-memory disk block caches to achieve high performance in its file system. It provides non-write-through file caching on both client and server machines. A simple cache consistency mechanism permits files to be shared by multiple clients without danger of stale data. In order to allow the file cache to occupy as much memory as possible, the file system of each machine negotiates with the virtual memory system over physical memory usage and changes the size of the file cache dynamically. Benchmark programs indicate that client caches allow diskless Sprite workstations to perform within O-12 percent of workstations with disks. In addition, client caching reduces server loading by 50 percent and network traffic by 90 percent.
Michael N. Nelson, Brent B. Welch, John K. Ousterhout
ACM Trans. Comput. Syst.3
1987 Process Migration in the Sprite Operating System
Fred Douglis, John K. Ousterhout
ICDCS2
1987 Caching in the Sprite Network File System (Extended Abstract)
abstract
This paper describes a simple distributed mechanism for caching files among a networked collection of workstations. We have implemented it as part of Sprite, a new operating system being implemented at the University of California at Berkeley. A preliminary version of Sprite is currently running on Sun-2 and Sun-3 workstations, which have about 1-2 MIPS processing power and 4-16 Mbytes of main memory. The system is targeted for workstations like these and newer models likely to become available in the near future; we expect the future machines to have at least five to ten times the processing power and main memory of our current machines, as well as small degrees of multiprocessing. We hope that Sprite will be suitable for networks of up to a few hundred of these workstations. Because of economic and environmental factors, most workstations will not have local disks; instead, large fast disks will be concentrated on a few server machines.
Michael N. Nelson, Brent B. Welch, John K. Ousterhout
SOSP3
1986 Prefix Tables: A Simple Mechanism for Locating Files in a Distributed System
Brent B. Welch, John K. Ousterhout
ICDCS2
1985 Magic's circuit extractor
abstract
We have implemented a fast hierarchical circuit extractor for the Magic VLSI layout system. The keys to its speed are a new algorithm based on corner-stitching, and its ability to extract cells incrementally. Because the extractor is incremental, typically only a few cells must be re-extracted when the layout changes. The extractor computes circuit connectivity and transistor dimensions, both internodal and substrate parasitic capacitance, and parasitic resistances. It is parameterized to work across a wide range of MOS technologies.
Walter S. Scott, John K. Ousterhout
DAC2
1985 A Trace-Driven Analysis of the UNIX 4.2 BSD File System
abstract
Article Free Access Share on A trace-driven analysis of the UNIX 4.2 BSD file system Authors: John K. Ousterhout Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CA Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CAView Profile , Hervé Da Costa Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CA Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CAView Profile , David Harrison Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CA Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CAView Profile , John A. Kunze Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CA Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CAView Profile , Mike Kupfer Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CA Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CAView Profile , James G. Thompson Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CA Computer Science Division, Electrical Engineering and Computer Sciences, University of California, Berkeley, CAView Profile Authors Info & Claims SOSP '85: Proceedings of the tenth ACM symposium on Operating systems principlesDecember 1985 Pages 15–24https://doi.org/10.1145/323647.323631Published:01 December 1985Publication History 390citation1,640DownloadsMetricsTotal Citations390Total Downloads1,640Last 12 Months127Last 6 weeks18 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteeReaderPDF
John K. Ousterhout, Hervé Da Costa, David Harrison, John A. Kunze, Michael D. Kupfer, James G. Thompson
SOSP1
1985 A Switch-Level Timing Verifier for Digital MOS VLSI
abstract
Crystal is a timing verification program for digital nMOS and CMOS circuits. Using the circuit extracted from a mask set, the program determines the length of each clock phase and pinpoints the longest paths. Crystal can process circuits with about 40 000 transistors in about 20-30 min of VAX-11/780 CPU time. The program uses a switch-level approach in which the circuit is decomposed into chains of switches called stages. A depth-first search, with pruning, is used to trace out stages and locate the critical paths. Bidirectional pass transistor arrays are handled by having the designer tag such structures with flow control information, which is used by Crystal to avoid endless searches. Delays are computed on a stage-by-stage basis, using a simple resistor-switch model based on rise-time ratios (a measure of how fully turned-on the transistors in the stage are). The delay modeler executes 10 000 times as fast as SPICE, yet produces delay estimates that are typically within 10 percent of SPICE for digital circuits.
John K. Ousterhout
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.1
1984 A switchbox router with obstacle avoidance
Gordon T. Hamachi, John K. Ousterhout
DAC2
1984 Switch-level delay models for digital MOS VLSI
John K. Ousterhout
DAC1
1984 Magic: A VLSI layout system
John K. Ousterhout, Gordon T. Hamachi, Robert N. Mayo, Walter S. Scott, George S. Taylor
DAC1
1984 Plowing: Interactive stretching and compaction in magic
Walter S. Scott, John K. Ousterhout
DAC2
1984 Magic's incremental design-rule checker
George S. Taylor, John K. Ousterhout
DAC2
1984 Corner Stitching: A Data-Structuring Technique for VLSI Layout Tools
abstract
Corner stitching is a technique for representing rectangular two-dimensional objects. It is especially well suited for interactive VLSI layout editing systems. The data structure has two important features: first, empty space is represented explicitly; and second, rectangular areas are stitched together at their corners like a patchwork quilt. This organization results in fast algorithms (linear or constant expected time) for searching, creation, deletion, stretching, and compaction. The algorithms are presented under a simplified model of VLSI circuits, and the storage requirements of the structure are discussed. Corner stitching has been implemented in a working layout editor. Initial measurements indicate that it requires about three times as much memory space as the simplest possible representation.
John K. Ousterhout
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.1
1984 The User Interface and Implementation of an IC Layout Editor
abstract
This paper describes several novel aspects of Caesar, a layout editor for Manhattan-style integrated circuits. The program's user interface is similar to painting. By hiding many irrelevant details, the painting mechanism provides a powerful yet simple user interface. Its implementation using horizontal strips is efficient in both time and space. To handle large circuits efficiently, Caesar represents them hierarchically and capitalizes on their hierarchical structure to avoid excess computation and I/O. Mask information is rendered on color displays with a novel combination of transparent and opaque layers that clarifies layer interactions even in the presence of a large number of mask layers.
John K. Ousterhout
IEEE Trans. Comput. Aided Des. Integr. Circuits Syst.1
1983 Pictures with parentheses: Combining graphics and procedures in a VLSI layout tool
Robert N. Mayo, John K. Ousterhout
DAC2
1982 Lyra: A new approach to geometric layout rule checking
abstract
Lyra is a layout rule checking program for Manhattan VLSI circuits. In Lyra, rules are specified in terms of constraints that must hold at certain corners in the design. The corner-based mechanism permits a wide variety of rules to be specified easily, including rules involving asymmetric constructs such as transistor overhangs. Lyra's mechanism also has locality, which can be exploited to construct incremental and/or hierarchical checkers. A rule compiler translates symbolic rules into efficient code for checking those rules, and permits the system to be retargeted for different processes.
Michael H. Arnold, John K. Ousterhout
DAC2
1982 Measurements of a VLSI design
abstract
This paper presents data about three facets of a recently-completed VLSI design containing 45000 transistors. The first set of data describes the mask-level features of the circuit, from which it is seen that almost all features have at least one small dimension. The second set of data analyzes the hierarchical cell structure used by the designers to specify the circuit. The measurements show that composite cells have a different structure from primitive cells, and that, outside of arrays, cells are rarely re-used. The third set of data concerns the usage of an interactive layout program during the circuit's design. In spite of the circuit's size, the most frequently invoked commands were all simple.
John K. Ousterhout, David M. Ungar
DAC1
1982 Scheduling Techniques for Concurrent Systems
John K. Ousterhout
ICDCS1
1979 Medusa: An Experiment in Distributed Operating System Structure (Summary)
abstract
The paper is a discussion of the issues that arose in the design of an operating system for a distributed multiprocessor, Cm*. Medusa is an attempt to understand the effect on operating system structure of distributed hardware, and to produce a system that capitalizes on and reflects the underlying architecture. The resulting system combines several structural features that make it unique among existing operating systems.
John K. Ousterhout, Donald A. Scelza, Pradeep S. Sindhu
SOSP1