Demo Data from EDBT 2026 / reviewers in the wild / expert
Joseph McMahan
dblp:198/2533
· DBLP profile ↗
10ranked-venue papers
2as first author
2since 2021 · last 2021
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 7 · 2 first-authorSoftware engineering, systems software and programming languages · 7 · 2 first-author · 1 since 2021Theory of computation · 1 · 1 since 2021
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.
| Network and information security
3 papers |
Hardware security and side channels · 61% Privacy and data protection · 25% Systems and software security · 14% | |
| Computer architecture, parallel and distributed computing, and storage systems
6 papers |
Reconfigurable computing and FPGAs · 27% Performance modeling and evaluation · 24% Electronic design automation · 18% | |
| Software engineering, system software, and programming languages
3 papers |
Compilers and program optimization · 56% Program verification · 32% Programming languages and type systems · 11% |
Topics — the 17 heaviest of 19, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Compilers and program optimization › code generation
instruction selection |
0.5 | 1 | 2021 | Reticle: a virtual machine for programming modern FPGAs · PLDI 2021 |
Privacy and data protection
data sharing |
0.4 | 1 | 2019 | Safer Program Behavior Sharing Through Trace Wringing · ASPLOS 2019 |
Hardware security and side channels
side-channel leakage |
0.4 | 1 | 2019 | Safer Program Behavior Sharing Through Trace Wringing · ASPLOS 2019 |
Systems and software security › vulnerability discovery
static analysis |
0.4 | 1 | 2019 | Bouncer: static program analysis in hardware · ISCA 2019 |
Privacy and data protection
information leakage |
0.3 | 1 | 2018 | Hiding Intermittent Information Leakage with Architectural Support for Blinking · ISCA 2018 |
Hardware security and side channels › side-channel attack
power analysis |
0.3 | 1 | 2018 | Hiding Intermittent Information Leakage with Architectural Support for Blinking · ISCA 2018 |
Hardware security and side channels › side-channel countermeasures
power analysis countermeasure |
0.3 | 1 | 2018 | Hiding Intermittent Information Leakage with Architectural Support for Blinking · ISCA 2018 |
Hardware security and side channels
side-channel attack |
0.3 | 1 | 2018 | Hiding Intermittent Information Leakage with Architectural Support for Blinking · ISCA 2018 |
Hardware security and side channels
side-channel countermeasures |
0.3 | 1 | 2018 | Hiding Intermittent Information Leakage with Architectural Support for Blinking · ISCA 2018 |
Performance modeling and evaluation › system modeling
architecture modeling |
0.3 | 1 | 2018 | Charm: A Language for Closed-Form High-Level Architecture Modeling · ISCA 2018 |
Electronic design automation
design space exploration |
0.3 | 1 | 2018 | Charm: A Language for Closed-Form High-Level Architecture Modeling · ISCA 2018 |
Processor architecture and microarchitecture
instruction set architecture |
0.3 | 1 | 2017 | An Architecture Supporting Formal and Compositional Binary Analysis · ASPLOS 2017 |
Performance modeling and evaluation › simulation
cache simulation |
0.1 | 1 | 2019 | Safer Program Behavior Sharing Through Trace Wringing · ASPLOS 2019 |
Embedded and real-time systems
embedded system security |
0.1 | 1 | 2019 | Bouncer: static program analysis in hardware · ISCA 2019 |
Programming languages and type systems
domain-specific languages |
0.1 | 1 | 2018 | Charm: A Language for Closed-Form High-Level Architecture Modeling · ISCA 2018 |
Integrated circuit design
system-on-chip |
0.1 | 1 | 2018 | Hiding Intermittent Information Leakage with Architectural Support for Blinking · ISCA 2018 |
Embedded and real-time systems
medical device |
0.1 | 1 | 2017 | An Architecture Supporting Formal and Compositional Binary Analysis · ASPLOS 2017 |
Methods — techniques the papers use, named apart from their topics
instruction selection · 1.0information-theoretic analysis · 0.8hardware state machine · 0.8cache simulation · 0.8symbolic evaluation · 0.7mutual information analysis · 0.7memoization · 0.7invariant hoisting · 0.7interval covering optimization · 0.7coq proof assistant · 0.6FPGA prototyping · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2021 | Reticle: a virtual machine for programming modern FPGAsabstractModern field-programmable gate arrays (FPGAs) have recently powered high-profile efficiency gains in systems from datacenters to embedded devices by offering ensembles of heterogeneous, reconfigurable hardware units. Programming stacks for FPGAs, however, are stuck in the past—they are based on traditional hardware languages, which were appropriate when FPGAs were simple, homogeneous fabrics of basic programmable primitives. We describe Reticle, a new low-level abstraction for FPGA programming that, unlike existing languages, explicitly represents the special-purpose units available on a particular FPGA device. Reticle has two levels: a portable intermediate language and a target-specific assembly language. We show how to use a standard instruction selection approach to lower intermediate programs to assembly programs, which can be both faster and more effective than the complex metaheuristics that existing FPGA toolchains use. We use Reticle to implement linear algebra operators and coroutines and find that Reticle compilation runs up to 100 times faster than current approaches while producing comparable or better run-time and utilization. Luis Vega, Joseph McMahan, Adrian Sampson, Dan Grossman, Luis Ceze |
PLDI | 2 |
| 2021 | Safe functional systems through integrity types and verified assemblyabstractBuilding a trustworthy life-critical embedded system requires deep reasoning about the potential effects that sequences of machine instructions can have on full system operation. Rather than trying to analyze complete binaries and the countless ways their instructions can interact with one another — memory, side effects, control registers, implicit state, etc. — we explore a new approach. We propose an architecture controlled by a thin computational layer designed to tightly correspond with the lambda calculus, drawing on principles of functional programming to bring the assembly much closer to myriad reasoning frameworks, such as the Coq proof assistant. This approach allows assembly-level verified versions of critical code to operate safely in tandem with arbitrary code, including imperative and unverified system components, without the need for large supporting trusted computing bases. We demonstrate that this computational layer can be built in such a way as to simultaneously provide full programmability and compact, precise, and complete semantics, while still using hardware resources comparable to normal embedded systems. To demonstrate the practicality of this approach, our FPGA-implemented prototype runs an embedded medical application which monitors and treats life-threatening arrhythmias. Though the system integrates untrusted and imperative components, our architecture allows for the formal verification of multiple properties of the end-to-end system. We present a proof of correctness of the assembly-level implementation of the core algorithm in Coq, the integrity of trusted data via a non-interference proof, and a guarantee that our prototype meets critical timing requirements. Michael Christensen 0001, Joseph McMahan, Lawton Nichols, Jared Roesch, Timothy Sherwood, Ben Hardekopf |
Theor. Comput. Sci. | 2 |
| 2020 | Language Support for Navigating Architecture Design in Closed FormabstractAs computer architecture continues to expand beyond software-agnostic microarchitecture to specialized and heterogeneous logic or even radically different emerging computing models (e.g., quantum cores, DNA storage units), detailed cycle-level simulation is no longer presupposed. Exploring designs under such complex interacting relationships (e.g., performance, energy, thermal, frequency) calls for a more integrative but higher-level approach. We propose Charm, a modeling language supporting closed-form high-level architecture modeling. Charm enables mathematical representations of mutually dependent architectural relationships to be specified, composed, checked, evaluated, reused, and shared. The language is interpreted through a combination of automatic symbolic evaluation, scalable graph transformation, and efficient compiler techniques, generating executable DAGs and optimized analysis procedures. Charm also exploits the advancements in satisfiability modulo theory solvers to automatically search the design space to help architects explore multiple design knobs simultaneously (e.g., different CNN tiling configurations). Through two case studies, we demonstrate that Charm allows one to define high-level architecture models in a clean and concise format, maximize reusability and shareability, capture unreasonable assumptions, and significantly ease design space exploration at a high level. Weilong Cui, Georgios Tzimpragos, Bill Tao, Joseph McMahan, Deeksha Dangwal, Nestan Tsiskaridze, George Michelogiannakis, Dilip P. Vasudevan, Timothy Sherwood |
ACM J. Emerg. Technol. Comput. Syst. | 4 |
| 2019 | Safer Program Behavior Sharing Through Trace WringingabstractWhen working towards application-tuned systems, developers often find themselves caught between the need to share information (so that partners can make intelligent design choices) and the need to hide information (to protect proprietary methods or sensitive data). One place where this problem comes to a head is in the release of program traces, for example a memory address trace. A trace taken from a production server might expose details about who the users are or what they are doing, or it might even expose details of the actual computation itself (e.g. through a side channel). Engineers are often asked to make, by hand, "analogs" of their codes that would be free from such sensitive data or, may even try to describe behaviors at a high level with words. Both of these approaches lead to missed opportunities, confusion, and frustration. We propose a new problem for study, trace-wringing, that seeks to remove as much information from the trace as possible while still maintaining key characteristics of the original. We formalize this problem and show that, for a specific instance around memory traces, as little as a few thousand bits need to be shared. We demonstrate experimentally that the trace-wrung proxies behave similarly in the context of cache simulation but with bounded leakage, and examine the sensitivity of wrung traces to a class of attacks on AES encryption. Deeksha Dangwal, Weilong Cui, Joseph McMahan, Timothy Sherwood |
ASPLOS | 3 |
| 2019 | Bouncer: static program analysis in hardwareabstractWhen discussing safety and security for embedded systems, we typically divide the world into software checks (which are either static or dynamic) or hardware checks (which are dynamic). As others have pointed out, hardware checks offer more than just efficiency. They are intrinsic to the device's functionality and thus are live from power-up; they require little to no dependency on other software functioning correctly, and due to the fact they are wired directly into the operation of the system, are difficult or impossible to bypass. We explore an experimental new embedded system that uses special-purpose hardware for static analysis that prevents all program binaries with memory errors, invalid control flow, and several other undesirable properties from ever being loaded onto the device. Static analysis often requires whole-binary-level, rather than instruction-level, examination. We show that a carefully constructed hardware state machine, using available scratch-pad memory, is capable of efficiently checking functional binaries in a streaming and verifiably non-bypassable way directly in hardware as they are loaded into the embedded program store. The resulting system is surprisingly small (taking no more than .0079 mm2), efficient (capable of checking binaries at an average throughput of around 60 cycles per instruction), and yet guarantees execution free from many of the fragile behaviors that result in security and safety concerns. We believe this is the first time any static analysis has been implemented at the hardware level and opens the door to more complex hardware-checked properties. Joseph McMahan, Michael Christensen 0001, Kyle Dewey, Ben Hardekopf, Timothy Sherwood |
ISCA | 1 |
| 2018 | Information Leakage in Arbiter Protocols
Nestan Tsiskaridze, Lucas Bang, Joseph McMahan, Tevfik Bultan, Timothy Sherwood |
ATVA | 3 |
| 2018 | Hiding Intermittent Information Leakage with Architectural Support for BlinkingabstractAs demonstrated by numerous practical attacks, the physical act of computation emits unintended and damaging information through infinitesimal variations in timing, power, and resource contention. While there are many techniques for preventing the leakage of information through power channels for specific cryptographic units, they are typically either built directly into the hardware logic or exploit intricate mathematical properties of the algorithm itself. However, such leaks are not uniform in time but, as we show, rather occur in specific bursts. Exploiting this observation we propose a set of software-controlled techniques allowing for the seamless disconnection and reconnection of general purpose programmable components in a system-on-chip. Such a system is capable of providing brief moments of electrical isolation during which the most critical computations can be performed free from both timing and power measurement. Of course, disconnection comes at a cost. To balance the resulting trade-off between overhead and security effectively, we describe a new analysis technique to uncover the "leakiest" intervals of time, we provide an algorithm to co-optimize the covering of these intervals and the performance/energy costs under a set of architecture imposed constraints, and explore the architectural and software ramifications of such intermittent disconnection. In the end we find that by hiding only between 15% and 30% of the trace, at a performance cost of between 15% and 50%, we are able to reduce the mutual information between the leakage model and key bits by 75% on average, and to nearly zero in specific cases. Alric Althoff, Joseph McMahan, Luis Vega, Scott Davidson 0004, Timothy Sherwood, Michael B. Taylor, Ryan Kastner |
ISCA | 2 |
| 2018 | Charm: A Language for Closed-Form High-Level Architecture ModelingabstractAs computer architecture continues to expand beyond software-agnostic microarchitecture to data center organization, reconfigurable logic, heterogeneous systems, application-specific logic, and even radically different technologies such as quantum computing, detailed cycle-level simulation is no longer presupposed. Exploring designs under such complex interacting relationships (e.g., performance, energy, thermal, cost, voltage, frequency, cooling energy, leakage, etc.) calls for a more integrative but higher-level approach. We propose Charm, a domain specific language supporting Closed-form High-level ARchitecture Modeling. Charm enables mathematical representations of mutually dependent architectural relationships to be specified, composed, checked, evaluated and reused. The language is interpreted through a combination of symbolic evaluation (e.g., restructuring) and compiler techniques (e.g., memoization and invariant hoisting), generating executable evaluation functions and optimized analysis procedures. Further supporting reuse, a type system constrains architectural quantities and ensures models operate only in a validated domain. Through two case studies, we demonstrate that Charm allows one to define high-level architecture models concisely, maximize reusability, capture unreasonable assumptions and inputs, and significantly speedup design space exploration. Weilong Cui, Yongshan Ding 0001, Deeksha Dangwal, Adam Holmes, Joseph McMahan, Ali Javadi-Abhari, Georgios Tzimpragos, Fred Chong, Timothy Sherwood |
ISCA | 5 |
| 2017 | An Architecture Supporting Formal and Compositional Binary AnalysisabstractBuilding a trustworthy life-critical embedded system requires deep reasoning about the potential effects that sequences of machine instructions can have on full system operation. Rather than trying to analyze complete binaries and the countless ways their instructions can interact with one another --- memory, side effects, control registers, implicit state, etc. --- we explore a new approach. We propose an architecture controlled by a thin computational layer designed to tightly correspond with the lambda calculus, drawing on principles of functional programming to bring the assembly much closer to myriad reasoning frameworks, such as the Coq proof assistant. This approach allows assembly-level verified versions of critical code to operate safely in tandem with arbitrary code, including imperative and unverified system components, without the need for large supporting trusted computing bases. We demonstrate that this computational layer can be built in such a way as to simultaneously provide full programmability and compact, precise, and complete semantics, while still using hardware resources comparable to normal embedded systems. To demonstrate the practicality of this approach, our FPGA-implemented prototype runs an embedded medical application which monitors and treats life-threatening arrhythmias. Though the system integrates untrusted and imperative components, our architecture allows for the formal verification of multiple properties of the end-to-end system, including a proof of correctness of the assembly-level implementation of the core algorithm, the integrity of trusted data via a non-interference proof, and a guarantee that our prototype meets critical timing requirements. Joseph McMahan, Michael Christensen 0001, Lawton Nichols, Jared Roesch, Sung-Yee Guo, Ben Hardekopf, Timothy Sherwood |
ASPLOS | 1 |
| 2017 | A pythonic approach for rapid hardware prototyping and instrumentationabstractWe introduce PyRTL, a Python embedded hardware design language that helps concisely and precisely describe digital hardware structures. Rather than attempt to infer a good design via HLS, PyRTL provides a wrapper over a well-defined "core" set of primitives in a way that empowers digital hardware design teaching and research. The proposed system takes advantage of the programming language features of Python to allow interesting design patterns to be expressed succinctly, and encourage the rapid generation of tooling and transforms over a custom intermediate representation. We describe PyRTL as a language, its core semantics, the transform generation interface, and explore its application to several different design patterns and analysis tools. Also, we demonstrate the integration of PyRTL-generated hardware overlays into Xilinx PYNQ platform. The resulting system provides an almost "pure" pythonic experience for the prototyping and evaluation of FPGA-based SoCs. John Clow, Georgios Tzimpragos, Deeksha Dangwal, Sammy Guo, Joseph McMahan, Timothy Sherwood |
FPL | 5 |